读书人

帮助解决ASSERT(FALSE)异常

发布时间: 2012-04-18 15:01:59 作者: rapoo

帮助解决ASSERT(FALSE)错误!
网上下的小波变换代码,我想调试,发生错误,跟踪到这里:

int AFXAPI AfxMessageBox(UINT nIDPrompt, UINT nType, UINT nIDHelp)
{
CString string;
if (!string.LoadString(nIDPrompt))
{
TRACE(traceAppMsg, 0, "Error: failed to load message box prompt string 0x%04x.\n",
nIDPrompt);
ASSERT(FALSE);
}
if (nIDHelp == (UINT)-1)
nIDHelp = nIDPrompt;
return AfxMessageBox(string, nType, nIDHelp);
}

上级堆栈:
pFrame = CreateNewFrame(pDocument, NULL);
pDocument->m_bAutoDelete = bAutoDelete;
if (pFrame == NULL)
{
AfxMessageBox(AFX_IDP_FAILED_TO_CREATE_DOC);
delete pDocument; // explicit delete on error
return NULL;
}
------------------------------

代码在:

http://115.com/file/anqlonpz

haer小波变换1 是网上原始代码,不能直接运行VS2008

haer小波变换2 是我在vs2008下改变设置的代码。

弄通一个就可以了。





[解决办法]
文件拥有者未分享该文件。
[解决办法]
字符串资源不存在,如果是在exe中调到这里,在资源中添加对应ID的字符串就行;如果是在动态dll中调到这里,可能还与资源模块切换相关,请参考:
http://wenku.baidu.com/view/5333ef22aaea998fcc220eea.html
[解决办法]
if (!string.LoadString(nIDPrompt))
{
TRACE(traceAppMsg, 0, "Error: failed to load message box prompt string 0x%04x.\n",
nIDPrompt);
ASSERT(FALSE);
}
---
是这里的ASSERT错误吗?字符串ID标示的资源存在?
[解决办法]
AFX_IDP_FAILED_TO_CREATE_DOC
建立空文档失败。
你这是什么类型的工程呢?
[解决办法]
该字符串在工程资源里面不存在吧?
[解决办法]
在资源文件里找对应编号的字符串。
[解决办法]

探讨

上面的问题照网页上的说明解决了,但紧接一行又有问题:

直接在InitInstance()函数中用如下代码代替原来的几行即可:

CCommandLineInfo cmdInfo;
cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
ParseCommandLine(cmdInfo);

if (!Pro……

读书人网 >VC/MFC

热点推荐