首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >调试断言在MFC编程的\$InstallDir\VC\atlmfc\src\mfc\olelock.cpp第62行上失败

调试断言在MFC编程的\$InstallDir\VC\atlmfc\src\mfc\olelock.cpp第62行上失败
EN

Stack Overflow用户
提问于 2014-11-05 02:57:45
回答 1查看 525关注 0票数 0

我必须使用Visual 2012在C#应用程序中调用示例MFC视图。我使用C++/CLI项目,并从C++调用C#类。要做到这一点,我必须使用这一行代码

代码语言:javascript
运行
复制
AFX_MANAGE_STATE(AfxGetStaticModuleState());

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

代码语言:javascript
运行
复制
 Debug Assertion Failed on  \$InstallDir\VC\atlmfc\src\mfc\olelock.cpp line 62 

下面是我在install上检查的源代码:

代码语言:javascript
运行
复制
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();
    }
}

我如何才能避免这种说法?谢谢您一直鼓励我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-05 13:09:11

这个断言简单地说,您调用AfxOleUnlockApp比调用AfxOleLockApp更频繁。

将断点设置为特定函数。检查谁呼叫锁定/解锁。可能有不止一次释放的物体..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26748969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档