gpt4 book ai didi

c++ - 在 dllmain()/DLL_PROCESS_ATTACH 中允许实例化 com 对象?

转载 作者:可可西里 更新时间:2023-11-01 11:53:03 26 4
gpt4 key购买 nike

DLLMAIN()/DLL_PROCESS_ATTACH 中加载 DLL 可能会导致问题。但是 COM Objects 可以使用 e.q. 实例化。 CoInitialize()/CoCreateInstance()?

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

最佳答案

我不确定你从哪里得到这句话,但听起来不对。

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

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

关于c++ - 在 dllmain()/DLL_PROCESS_ATTACH 中允许实例化 com 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24880312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com