MFC生成的exe文件在别人电脑无法正常运行:无法启动此程序、已停止工作、无法定位程序输入点

MFC生成的exe文件在别人电脑无法正常运行,出现问题一个接一个

已在MFC中设置为:release版本设置:静态库中使用MFC+MT

MFC生成的exe文件在别人电脑无法正常运行:无法启动此程序、已停止工作、无法定位程序输入点_第1张图片

这个问题查看问题详细信息的话,是软件编写问题,内存泄露;

问题事件名称:    APPCRASH
  应用程序名:    DEP.exe
  应用程序版本:    1.0.0.1
  应用程序时间戳:    59dd6db3
  故障模块名称:    StackHash_e8ad
  故障模块版本:    0.0.0.0
  故障模块时间戳:    00000000
  异常代码:    c0000005
  异常偏移:    0000f61c
  OS 版本:    6.1.7601.2.1.0.256.48
  区域设置 ID:    2052
  其他信息 1:    e8ad
  其他信息 2:    e8adce1c2b9e7be834b4063ac3c53863
  其他信息 3:    e8ad
  其他信息 4:    e8adce1c2b9e7be834b4063ac3c53863

联机阅读隐私声明:
  http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0804

如果无法获取联机隐私声明,请脱机阅读我们的隐私声明:
  C:\Windows\system32\zh-CN\erofflps.txt

简单总结下出现的问题和解决方法:

1、mfc140u.dll

MFC生成的exe文件在别人电脑无法正常运行:无法启动此程序、已停止工作、无法定位程序输入点_第2张图片

copy了system32文件下的mfc140u.dll放到exe目录下;结果出现2问题:

2、应用程序无法正常启动0xc000007b:

MFC生成的exe文件在别人电脑无法正常运行:无法启动此程序、已停止工作、无法定位程序输入点_第3张图片

这个问题是我的电脑是64bits,在MFC中编写的软件是x86的,32位的;

因为:win7 64位的dll在System32中,32位的dll在SysWOW64中。

所以需要的mfc140u.dll不应该是system目录,应该是SysWow64中;

解决后又出现新问题:

3、vcruntime140.dll

MFC生成的exe文件在别人电脑无法正常运行:无法启动此程序、已停止工作、无法定位程序输入点_第4张图片

计算机中丢失vcruntime140.dll;

将SysWow64中的对应dll放入到其中;

解决后又出现新问题:

4、丢失api-ms-win-crt-runtime-l1-1-0.dll

MFC生成的exe文件在别人电脑无法正常运行:无法启动此程序、已停止工作、无法定位程序输入点_第5张图片

将SysWow64中的对应dll放入到其中

解决后又出现新问题:

MFC生成的exe文件在别人电脑无法正常运行:无法启动此程序、已停止工作、无法定位程序输入点_第6张图片

无法定位


这下不晓得怎么处理:

最终采用的方式:网友的方式http://www.cnblogs.com/zhongtang/p/7448823.html,感谢

不同操作系统32/64、不同程序的位数32/64,拷贝的文件不同:

规则如下:

a、64位操作系统,32位程序,选择syswow64下dll

b、64位操作系统,64位程序,选择system32下dll

c、32位操作系统,32位程序,选择system32下dll

拷贝所有api-ms开头的dll ,以及msvcp140.dll,vcruntime140.dll,ucrtbase.dll到程序目录


1、mfc100ud.dll

win7 64位System32里的dll为64位的,32位的dll在SysWOW64里

应用程序无法正常启动0xc000007b解决方法

2、特别补充一点:

当上述补充DLL一起打包后,放到其他电脑上基本没有问题,但在win8.1 64bits中又出现了缺少msvcr100.dll,在相应路径中找到此文件一起打包,解决。

...



你可能感兴趣的:(C++)