注:本文介绍了0xc000007b问题的本质。 可以说统一了网络上的各种各样的声音吧。
问题方案:
发布后,用vs2013编写的64位exe程序将从系统目录c :windowssys wow 64msvcr 120.dll带到无运行时的win7环境中,并使用MFC
但是,在复制完成后运行时,将显示以下对话框:
首先怀疑msvcr120.dll还不够,还复制了msvcp120.dll和vccorlib120.dll,但问题仍然存在
接下来,搜索网上其他人遇到的错误,做了:
1、说dx9不足,用dxdiag命令打开一看,系统有dx11,根据向后兼容性,dx9并不不足
为了验证,我特意在本机上重新安装了dx8,但问题依然存在,所以说dx9缺的是比较漏洞。 当前窗口默认情况下支持dx,更不用说像dx9这样的旧窗口了
2、说vc环境不够,这个已经做了,不缺了
最后调查的理由超出了大家的想象。 SysWOW64目录中的dll并不保留64位,实际上从这里复制的msvcr120.dll是32位。
那么,你去哪里找真正的64位dll? 这里是vs2013安装目录VCredistx64,这里有正统的dll
另外,原则上x86的也应该从那里的x86目录复制,只是面向分发。
更换msvcr120.dll后,问题解决了。
总结:
1,0xc 00007 b —— APP应用程序无法正常启动
其根本原因是缺少所需的DLL,提供错误版本的DLL等同于没有DLL,提示完全相同
2、网上说dx运行环境不足,事实上,是因为dx相关的dll不足
所以根本原因,就在于低一点
3、程序是32位还是64位没有直接关系,但是不能支持你的程序的dll版本往往很难发现问题,请注意
4、网上资料太粗糙,流向表面,大家要有分辨能力。
5、发布时,需要vc或mfc环境。 在你的开发工具目录的redist目录中查找就可以了。 拿系统目录找是错误的
所以,以后遇到这个错误,就不用茫然了。 dll一定不足或dll版本错误。