繁体   English   中英

实例化dllmain()/ DLL_PROCESS_ATTACH中允许的com对象?

[英]instancing com object allowed in dllmain() / DLL_PROCESS_ATTACH?

DLLMAIN() / DLL_PROCESS_ATTACH加载DLL可能会引起麻烦。 但是,可以使用eq CoInitialize()/ CoCreateInstance()实例化COM Objects吗?

编辑 :问题是:在这种情况下,创建COM实例是否会导致类似错误,例如加载DLL? 在我看来,加载DLL和创建COM实例的方式相似。

我不确定您从何处获得该报价,但听起来并不正确。

您永远不要在DllMain中放入任何有意义的代码。 特别是调用LoadLibrary的代码。 许多Windows API都会在后台调用LoadLibrary,因此最好避免在此处进行任何复杂的初始化。 使用全局C ++对象(用于其构造函数)或更佳的方法,导出函数进行初始化。

进程内组件的CoCreateInstance最终将调用LoadLibrary或其变体之一。 在DllMain中调用此函数也不是明智的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM