在DLLMAIN()
/ DLL_PROCESS_ATTACH
中加载DLL可能会造成麻烦。但是可以使用e.q. COM Objects
实例化{{1}}。 CoInitialize()/ CoCreateInstance()?
编辑:问题是: 可能会创建COM实例导致类似的错误,如在这种情况下加载DLL? 加载DLL,创建COM实例在某种程度上对我来说似乎相似。
答案 0 :(得分:2)
我不确定你从哪里得到引用,但听起来不对。
你永远不应该将任何重要的代码放入DllMain。特别是调用LoadLibrary的代码。许多Windows API都会调用LoadLibrary,因此最好避免在此处进行任何复杂的初始化。使用全局C ++对象(对于它的构造函数)或者更好的是,导出一个函数进行初始化。
进程内组件的CoCreateInstance最终将调用LoadLibrary或其变体之一。在DllMain中调用此函数也不是明智之举。