在win7上编写的MFC程序,在win10上运行出现0xc000007b的错误

解决方案:

原先用  C:\Windows\System32 路径下的2个dll,复制出来与编写好的EXE放在同一个文件夹,系统不报缺失dll了,但是报0xc000007b的错误,尝试了网上的各种办法(网上的回答的一些吊毛不少是复制粘贴的),没有一点卵用。后来在同事win10的电脑上试,他的电脑能运行,但另一个同事也是win10的,却不能运行,这2台电脑最主要的区别就是能运行的电脑装了个VS2013的开发环境,另一台没装,那么方向又明确了一点,是由于VS2013安装附带了一些不知道的包或者dll,但这些dll我并不知道在哪,也不知道具体用途,也相当于大海捞针。后来查了下,有个depends的工具,这个工具之前我也用过就下载了一个,比对了下在正常运行电脑上的结果,发现win10上几百个报错,说是缺失几百个DLL,我特么心累啊,难不成我一个一个找对应的DLL,再更换吗,这很明显不现实的。后来发现,这几个DLL总共又集成在6个DLL里面,然后我就网上下载更换了这6个DLL,结果,,,还是没卵用。后来又看depends,发下我调用的2个DLL,mfc120ud.dll,msvcr120d.dll,显示的是“AMD64”,其他的DLL显示的32,这个就奇怪了,win10是64位的,我用64位的没毛病啊,为啥在这边却显示红色了,32的反而正常,于是我就再次把 C:\Windows\System32 里面找到这2个DLL,然后放在EXE的文件夹里,,,,还是不行。我实在是没办法了,期间又安装了个微软MFC的运行库,还是解决不了,,,习惯了失败后,一个随意的操作解决了问题,,,

反正C:\Windows\System32 里面的DLL是不行了,要不试试64位下的DLL?把开发电脑win7 C:\Windows\SysWOW64 文件夹里面的这2个DLL拿出来后,丢到win10,存放EXE的文件夹里,踏马的,终于能运行了。

总结:脑子里一直有个固执的看法,认为64位的会兼容32位的,简单点就是认为32位上能运行的,64肯定能,64能运行的,32不一定行,,,,这种想法是特么错误的啊。所以以后开发的程序,要放在其他win8或者win10上使用时,先看对方是32位还是64位,不用的位数对应不同文件夹下的DLL。

题外话:

本人编程彩笔一枚,基础不扎实,工作前三年浪费了不少时间,也很难静下心来写程序,基本上是拿来主义者,遇到啥问题都是网上找资源,然后修修改改,幸亏人际不错,有了问题自己搞不定,求助认识的人,大家都挺愿意帮忙的。现在感觉,很多问题还是要自己解,因为自己遇到过的问题前辈不一定正好遇到,总是需要自己分析的,然后把分析解决的过程记录下来,供以后自己或者别人参考,都是挺好的,也算是给抄了这几年互联网资源的一丁点回馈吧!

猜你喜欢

转载自blog.csdn.net/eat_orange/article/details/82177555
今日推荐