1
在DLLMAIN()
/DLL_PROCESS_ATTACH
中加载DLL可能会造成麻烦。但可能COM Objects
使用e.q. CoInitialize()/ CoCreateInstance()?在dllmain()/ DLL_PROCESS_ATTACH中允许实例化com对象?
编辑:现在的问题是: 可能创建COM实例导致类似的错误,如在这种情况下加载DLL? 加载DLL创建COM实例在某种程度上对我来说似乎是相似的。
在DllMain的上下文中不会调用全局对象的构造函数吗? (我可以想象运行时库如何避免在加载时DLL中为全局变量执行这些操作,但是没有看到运行时DLL中的全局变量是如何可能的。) –
@HarryJohnston - 我可能虽然(天真地)初始化全局变量的CRT初始化发生在DllMain之后,加载器操作之外以及调用LoadLibrary的线程中。我需要仔细检查一些来源。我会适当地更新我的答案。 – selbie