X86下正常运行,但是X64下就会C++Debug Assertion Failed! mfc140ud.dll异常(occcont.cpp)

w946995383_02 2017-07-31 02:56:46
各位大神,你们好,问题是这样的:
(要不是因为加密,我都要直接贴项目文件了。。。)
电脑是64位Win7 ,VS2015。写了个基于mscomm32.ocx控件的MFC程序,
在DEBUG X86下配置正常,编译OK,运行也是OK的,完全没问题;
在DEBUG X64下配置正常,编译OK,运行之后报错了,如下图:

出错位置在XXAPP::InitInstance()方法中的下图断点位置:

看调试信息我做了以下工作:
1、是不是mfc140ud.dll丢失了呢,找到system32下和SysWOW64下面都有这东西,所以应该不是这个问题吧;
2、调试信息中有些提示是不是可能什么东西没注册,于是我又regsvr32 C:\Windows\SysWOW64\MSCOMM32.OCX了十好几遍(当然提示是注册成功的),结果依旧是报如题所示的错误!!!!!!!!!!


各位大神,大哥,这是怎么回事,可有解决之道?先行谢过!
...全文
2795 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
加菲喵不是猫 2021-05-19
  • 打赏
  • 举报
回复
大佬 最后怎么解决的?
zgl7903 2017-08-03
  • 打赏
  • 举报
回复
那就用A P I函数,兼容性强
xiaohuh421 2017-08-02
  • 打赏
  • 举报
回复
引用 5 楼 w946995383_02 的回复:
[quote=引用 4 楼 xiaohuh421 的回复:] 一般这种都需要看崩溃时的调用栈. 不管x86模式是否能正常运行. 有可能是在64位上有其它问题导致.
请问是不是能排除是控件未注册的问题?[/quote] 不能排除, 所以请调试运行, 崩溃的时候看调用栈, 来确定问题所在.
赵4老师 2017-08-01
  • 打赏
  • 举报
回复
早晚你都要学会看Call Stack的。
w946995383_02 2017-08-01
  • 打赏
  • 举报
回复
今天继续试了下,把原有的串口控件删掉,能运行出窗口。然后新插入一个串口控件,没有添加任何变量,编译没问题,但是运行还是不出意外的崩溃了;然而,X86下同样的操作依旧是运行没问题的
w946995383_02 2017-08-01
  • 打赏
  • 举报
回复
对话框在domodal的时候就崩溃了
w946995383_02 2017-07-31
  • 打赏
  • 举报
回复
引用 4 楼 xiaohuh421 的回复:
一般这种都需要看崩溃时的调用栈. 不管x86模式是否能正常运行. 有可能是在64位上有其它问题导致.
请问是不是能排除是控件未注册的问题?
xiaohuh421 2017-07-31
  • 打赏
  • 举报
回复
一般这种都需要看崩溃时的调用栈. 不管x86模式是否能正常运行. 有可能是在64位上有其它问题导致.
赵4老师 2017-07-31
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止
w946995383_02 2017-07-31
  • 打赏
  • 举报
回复
引用 1 楼 zgl7903 的回复:
点击重试, 看调用堆栈, 有可能是用到的控件没有注册或初始化
仅引用过一个串口控件,而且注册过很多遍了,注册方法我有在问题里写。 而且我的程序在X86下是能正常运行的啊
zgl7903 2017-07-31
  • 打赏
  • 举报
回复
点击重试, 看调用堆栈, 有可能是用到的控件没有注册或初始化

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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