断言失败 怎么解决

qingwa3344 2008-01-07 09:45:07
写了个动态链接库的窗体类,在另一个程序中调用。
编译链接都没有错误,在new链接库中的窗体后,在Create函数中出错。
弹出断言失败提示框。
图片见:
http://hiphotos.baidu.com/jie0610/pic/item/f4b1a78f8c7d17e0f01f36c2.jpg
...全文
5212 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Allen_zhang 2008-01-08
  • 打赏
  • 举报
回复
对于断言错误,在弹出的窗口点重试一般都会定位到该断言的地方
这时可以在堆栈信息中找到你的代码,看看是那里触发了该断言

之后找到问题做相应的修改即可

Allen_zhang 2008-01-08
  • 打赏
  • 举报
回复
楼上正解

m_pDlg-> Create(m_pDlg-> IDD,this);

这句中找不到这个idd
你将断点放到这句再一步步执行看看是不是找不到这个资源?
sjdev 2008-01-07
  • 打赏
  • 举报
回复
HINSTANCE hRes = AfxGetResourceHandle();
AfxSetResourceHandle(这里是定义CMyDlg的动态库的句柄);
...
new create here
...
AfxSetResourceHandle(hRes);
sjdev 2008-01-07
  • 打赏
  • 举报
回复
使用AfxSetResourceHandle把资源句柄切换到DLL,用完所再切回来。
qingwa3344 2008-01-07
  • 打赏
  • 举报
回复
没有用第三方的库
qingwa3344 2008-01-07
  • 打赏
  • 举报
回复
m_pDlg= new CMyDlg(this);
m_pDlg->Create(m_pDlg->IDD,this);
m_pDlg->ShowWindow(SW_MINIMIZE);

执行Create语句时出错的。
CMyDlg是在动太链接库中的。
sjdev 2008-01-07
  • 打赏
  • 举报
回复
是不是用了什么第三方的库了?
qingwa3344 2008-01-07
  • 打赏
  • 举报
回复
可是VC目录下找不到那个文件
而且对话框上提示的那个文件夹在我的F盘上就不存在的
iyranly 2008-01-07
  • 打赏
  • 举报
回复
这样的帖子很多了,我总结一下解决步骤:

1、设置一下断点,跟踪以下,看是在程序中哪一行出现的断言。。

2、还有在mfc安装目录下找到dlgscor.cpp(断言处),找到对应的行,并看这个断言是在执行什么函数时检测的。。

3、修改相应的代码。

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧