莫名其妙的遇到ASSERT(m_pDocManager != NULL);错误

在编译选项为debug时,调试程序总是在

CDocument* CWinApp::OpenDocumentFile(LPCTSTR lpszFileName)
{
    ASSERT(m_pDocManager != NULL);
    return m_pDocManager->OpenDocumentFile(lpszFileName);
}

中的ASSERT(m_pDocManager != NULL);时挂掉。


最重要的是我的程序中根本就没有与打开文件相关的代码。而在Release时没有问题。

在更改了N多次编译配置之后发现Debug与Release连接的静态库都一样比如xxx.lib,在Debug版本中修改静态连接库为xxxD.lib(库的Debug版本),该问题就解决了。


但是xxx库的Debug版本和Release中的编译选项都差不多,当然除了预定义的宏:

     Debug    :

          WIN32,_DEBUG,_WINDOWS,_MBCS

         /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /FR"Debug/" /Fp"Debug/Packet.pch" /Yu"stdafx.h" /Fo"Debug/" /Fd"Debug/" /FD /GZ /c

    Release:

         WIN32,NDEBUG,_WINDOWS,_MBCS

        /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FR"Release/" /Fp"Release/Packet.pch" /Yu"stdafx.h" /Fo"Release/" /Fd"Release/" /FD /c

我的可执行程序的

    Debug :

             ..\Lib\PacketD.lib ..\lib\Telephoned.lib ../lib/xcsp_eclib.lib ../lib/SoftCrypto.lib ../lib/setupapi.lib ../lib/wbemuuid.lib ../lib/wbemuuid.lib /nologo /subsystem:windows /incremental:no /pdb:"Debug/1111111.pdb" /map:"Debug/1111111.map" /debug /machine:I386 /nodefaultlib:"libc.lib" /out:"../Bin/1111111.exe" 

    Release:

              ..\Lib\Packet.lib ..\lib\Telephone.lib ../lib/xcsp_eclib.lib ../lib/SoftCrypto.lib ../lib/setupapi.lib ../lib/wbemuuid.lib /nologo /subsystem:windows /incremental:no /pdb:"Release/11111111.pdb" /map:"Release/1111111.map" /debug /machine:I386 /nodefaultlib:"libc.lib" /out:"../Bin/111111.exe" 



以上配置不知道为啥出现该问题,也可参考http://social.msdn.microsoft.com/Forums/zh-CN/winembmngdapp/thread/a00665bf-ea9d-4fda-9122-c494c6850b85中的描述。

敬请达人解惑!


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值