dlg..DoModal()时弹出断言错误怎么解决?

langtaige1981 2012-09-05 03:16:52
程序还没进入OnInitDialog函数,在构造函数CScaleDlg::CScaleDlg(CWnd* pParent /*=NULL*/)那就死了,看了网上的一些方法,都是检查OnInitDialog函数,但是现在在OnInitDialog函数之前就死了,哪位大侠帮忙分析一下啊?
...全文
751 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
hlhf73 2012-09-09
  • 打赏
  • 举报
回复
怎么将C程序与MFC混用啊
langtaige1981 2012-09-06
  • 打赏
  • 举报
回复
还没走到,在构造函数里就死了[Quote=引用 14 楼 的回复:]
DoDataExchange 进了吗?
[/Quote]
fronz 2012-09-06
  • 打赏
  • 举报
回复
一般都是后期的语言规范中引用前期的,你在c的主程序里用DoModal().......
这种做法很不平常,所以源程序在编译链接时很容易混乱。

如果不是太繁琐,还是将主程序改为C++/MFC为好
lg0215081 2012-09-06
  • 打赏
  • 举报
回复
检查OnInitDialog()
及该对话框里相关的映射
schlafenhamster 2012-09-06
  • 打赏
  • 举报
回复
上代码
Daisy__Ben 2012-09-06
  • 打赏
  • 举报
回复

呵呵,让我想起曾经也是傻傻分不清。

把弹框的函数OpenTableDlg放在dll里面,导出来。dll是mfc的dll。
worm0336 2012-09-05
  • 打赏
  • 举报
回复
这个对话框的实例没有建立起来,你把整个项目的属性改为c++试试。
  • 打赏
  • 举报
回复
DoDataExchange 进了吗?
langtaige1981 2012-09-05
  • 打赏
  • 举报
回复
这个真的不懂,况且现在开发的是CAD中的一个项目,只能点击菜单启动这个命令,不能用其他的方法[Quote=引用 12 楼 的回复:]
引用 9 楼 的回复:
没听说过都,也不会。现在程序就是这样的,来不及改了

引用 7 楼 的回复:
竟然在.c里面玩MFC的东西,汗。
换个思路吧,直接在代码中用System来启动这个程序不就OK了么?


System就一句话,就能达到你的效果了。后面跟DOS命令啊,在MFC里面启动你的Dialog就可以了
[/Quote]
看不见的裂痕 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
没听说过都,也不会。现在程序就是这样的,来不及改了

引用 7 楼 的回复:
竟然在.c里面玩MFC的东西,汗。
换个思路吧,直接在代码中用System来启动这个程序不就OK了么?
[/Quote]

System就一句话,就能达到你的效果了。后面跟DOS命令啊,在MFC里面启动你的Dialog就可以了
langtaige1981 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
你用到了mfc的东西,却没有链接dll。
在项目属性里面,设置一下,动态(静态)链接到dll。
[/Quote]改了之后还是不行,可能还有别的原因
sumos 2012-09-05
  • 打赏
  • 举报
回复
你用到了mfc的东西,却没有链接dll。
在项目属性里面,设置一下,动态(静态)链接到dll。
langtaige1981 2012-09-05
  • 打赏
  • 举报
回复
没听说过都,也不会。现在程序就是这样的,来不及改了[Quote=引用 7 楼 的回复:]
竟然在.c里面玩MFC的东西,汗。
换个思路吧,直接在代码中用System来启动这个程序不就OK了么?
[/Quote]
langtaige1981 2012-09-05
  • 打赏
  • 举报
回复
断言的地方找到了:
_AFXWIN_INLINE HINSTANCE AFXAPI AfxGetInstanceHandle()
{ ASSERT(afxCurrentInstanceHandle != NULL);
return afxCurrentInstanceHandle; }
看不见的裂痕 2012-09-05
  • 打赏
  • 举报
回复
竟然在.c里面玩MFC的东西,汗。
换个思路吧,直接在代码中用System来启动这个程序不就OK了么?
langtaige1981 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
引用 3 楼 的回复:
没有任何引用,是一个空白对话框,只有默认的OK和Cancel两个按钮

重建个对话框 试试
[/Quote]重建了也是这样,试了半天不行,只能请大侠了。按说一个对话框这么简单不应该出现这样的问题
langtaige1981 2012-09-05
  • 打赏
  • 举报
回复
主程序是.C文件,不支持MFC的对话框,为此又新建一个.cpp文件,在.cpp文件里写的以下代码:extern "C" BOOL OpenTableDlg()
{
CScaleDlg dlgForScale;
dlgForScale.DoModal();
return TRUE;
},然后在.c文件里调用OpenTableDlg函数。但是到dlgForScale.DoModal()就弹出断言错误了
gameslq 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
没有任何引用,是一个空白对话框,只有默认的OK和Cancel两个按钮
[/Quote]
重建个对话框 试试
langtaige1981 2012-09-05
  • 打赏
  • 举报
回复
没有任何引用,是一个空白对话框,只有默认的OK和Cancel两个按钮
看不见的裂痕 2012-09-05
  • 打赏
  • 举报
回复
这个是开头
BOOL CXXXXXApp::InitInstance()

断点打在InitInstance()这里

另外你代码里面有什么其他引用,可以报告下
加载更多回复(1)

15,978

社区成员

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

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