MFC生成的exe文件在别人电脑无法正常运行,出现问题一个接一个
已在MFC中设置为:release版本设置:静态库中使用MFC+MT
这个问题查看问题详细信息的话,是软件编写问题,内存泄露;
简单总结下出现的问题和解决方法:
1、mfc140u.dll
copy了system32文件下的mfc140u.dll放到exe目录下;结果出现2问题:
2、应用程序无法正常启动0xc000007b:
这个问题是我的电脑是64bits,在MFC中编写的软件是x86的,32位的;
因为:win7 64位的dll在System32中,32位的dll在SysWOW64中。
所以需要的mfc140u.dll不应该是system目录,应该是SysWow64中;
解决后又出现新问题:
3、vcruntime140.dll
计算机中丢失vcruntime140.dll;
将SysWow64中的对应dll放入到其中;
解决后又出现新问题:
4、丢失api-ms-win-crt-runtime-l1-1-0.dll
将SysWow64中的对应dll放入到其中
解决后又出现新问题:
无法定位
这下不晓得怎么处理:
最终采用的方式:网友的方式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,在相应路径中找到此文件一起打包,解决。
...