gpt4 book ai didi

c++ - CoCreateInstance 在 Release 中工作得很好,但在调试中没有

转载 作者:太空狗 更新时间:2023-10-29 21:25:49 29 4
gpt4 key购买 nike

我是 COM 新手,在调试 dll 时遇到问题。在这段代码中:

        _Check_return_ HRESULT CoCreateInstance(_In_ REFCLSID rclsid, _In_opt_ LPUNKNOWN pUnkOuter = NULL, _In_ DWORD dwClsContext = CLSCTX_ALL)  
throw()
{
ATLASSERT(p == NULL);
return ::CoCreateInstance(rclsid, pUnkOuter, dwClsContext, __uuidof(T), (void**)&p);
}

作为返回,我收到错误 R6034:应用程序试图错误地加载 C 运行时库。

另外:在 VS 2008 的输出窗口中,我注意到调试在某些消息处停止:

'OmpClimApp.exe': Loaded '\\omegaserver\omega\app32\OMEGA.DLL\RWUXThemeS.dll', Binary was not built with debug information.

哪里出错了?

最佳答案

看起来问题在于混合了 MS CRT 库的 DebugRelease 程序集版本。 Microsoft.VC80.CRTMicrosoft.DebugVC80.CRT 程序集使用相同的通用 publicKeyToken "1fc8b3b9a1e18e3b" 因此它们不能同时加载到单个应用程序中.

在您的情况下,RWUXThemeS.dll 的 list 是指 Microsoft.VC80.CRT,但您在 Debug 构建中的应用程序 list 是指 Microsoft.DebugVC80.CRT。尝试加载 RWUXThemeS.dll 导致错误描述实际上是不正确的,它应该是“无法加载公钥已被另一个程序集使用的程序集”。

可能的解决方案:您需要调试版本的 RWUXThemeS.dll 才能在调试版本中链接到您的应用程序。假设它的名字是 RWUXThemeSD.dll

参见 MSDN for more details (社区内容,主要文章看起来与您的问题无关)。

RWUXTheme 库是 Rogue Wave Stingray Studio 的一部分,请参阅 documentation .

关于c++ - CoCreateInstance 在 Release 中工作得很好,但在调试中没有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13341742/

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