实例化dllmain() / DLL_PROCESS_ATTACH中允许的com对象
instancing com object allowed in dllmain() / DLL_PROCESS_ATTACH?
在DLLMAIN()
/DLL_PROCESS_ATTACH
中加载dll可能会导致问题。但是COM Objects
是否可以使用CoInitialize()/CoCreateInstance()实例化?
EDIT:问题是在这种情况下,创建COM实例是否会导致类似加载dll的错误?在我看来,加载dll和创建COM实例在某种程度上是相似的。
我不知道你这句话是从哪里来的,但听起来不太对。
你不应该把任何有意义的代码放到DllMain中。尤其是调用LoadLibrary的代码。许多Windows api将在底层调用LoadLibrary,因此最好避免在这里进行任何复杂的初始化。使用一个全局的c++对象(对于它的构造函数),或者更好,导出一个函数进行初始化。
进程内组件的CoCreateInstance最终将调用LoadLibrary或其变体之一。在DllMain中调用这个函数也不明智。
相关文章:
- COM :是否可以查看是否存在对我的某个 COM 对象的进程外引用?我可以释放它吗?
- 如何在C++非托管/本机 DLL 中从注册免费 COM C# 托管 DLL 创建 COM 对象
- 从 WinRT C++组件访问 COM 对象
- 通过 COM 对象连接 x64 应用程序时出现问题
- 我如何知道COM对象与不同的COM UUIDS兼容
- 如何访问从 COM 对象返回的 VARIANT 数据类型中的安全数组C++?
- 组件对象模型 (COM):IMalloc::Alloc 在哪里分配内存?
- 2 个 COM 对象,并在另一个对象中使用其中一个对象的接口
- 尝试向 COM 对象添加另一个接口时出现静态强制转换错误 C2440
- 在没有共享 COM 对象的情况下使用 COM STA 或 MTA?
- 如何在C++命令行界面程序中运行 COM (.ocx) 对象.(VS2017)
- 初始化com对象的问题
- UI自动化回调中com对象的所有权
- 从 COM 对象快速读取西里尔字母
- 如果从函数返回指向指针 COM 对象的指针,我是否需要 AddRef()?
- 如何通过 COM 互操作访问复杂对象的属性?
- 使用 com 对象删除计划任务
- 如何使用OlesetClipboard将我的COM对象放置在剪贴板上时解决问题
- 在自定义源和 SmartTee 之间插入筛选器会泄漏 COM 对象
- COM 对象中的回调