gpt4 book ai didi

c# - MFC 编程中的\$InstallDir\VC\atlmfc\src\mfc\olelock.cpp 第 62 行调试断言失败

转载 作者:行者123 更新时间:2023-11-30 17:26:32 24 4
gpt4 key购买 nike

我必须使用 Visual Studio 2012 在 C# 应用程序中调用示例 MFC View 。我使用 C++/CLI 项目并从 C# 调用 C++ 类。为此,我必须使用这行代码

AFX_MANAGE_STATE(AfxGetStaticModuleState());

这将调用 MFC DLL 资源的资源句柄,而不是默认资源(C# 上的 exe 文件)。 MFC View 运行正常,但出现异常(如 C 消息框):

 Debug Assertion Failed on  \$InstallDir\VC\atlmfc\src\mfc\olelock.cpp line 62 

这是我在安装目录上检查的源代码:

void AFXAPI AfxOleUnlockApp()
{
AFX_MODULE_STATE* pModuleState = AfxGetModuleState();
ASSERT(pModuleState->m_nObjectCount != 0);
if (InterlockedDecrement(&pModuleState->m_nObjectCount) == 0)
{
// allow application to shut down when all the objects have
// been released
::AfxOleOnReleaseAllObjects();
}
}

如何避免这种说法?感谢您的支持。

最佳答案

此断言只是表明您调用 AfxOleUnlockApp 的次数比调用 AfxOleLockApp 的次数多。

对特定函数设置断点。检查谁调用锁定/解锁。可能有多次释放的对象......

关于c# - MFC 编程中的\$InstallDir\VC\atlmfc\src\mfc\olelock.cpp 第 62 行调试断言失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26748969/

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