问题情景:
vs2015 写的一个32位的exe程序,debug后将在系统内部找到的运行库文件拷到一个没有runtime的win7环境去运行
但是拷贝过去后一运行就出现如下对话框:
正确解决:
首先怀疑运行库不全,于是安装VC运行库,问题依旧
其次,搜索了网络上其他人碰到的错误,做了:
1、说缺乏dx9,于是用dxdiag命令打开看,发现系统是有dx11的,根据向下兼容,不可能缺乏dx9
为了验证,我特地重装了dx8到本机,问题依旧,所以说dx9缺乏的都是比较坑爹的,因为目前的window都是默认支持dx,更不用说dx9这么老的东西了
最后利用神器depends.exe,查看是否缺库。
最后查到的原因所在,出乎意料:SysWOW64目录下的dll并非确保是64位的,同样System32下的也并非全都是32位的,实际上我从这里拷贝出来的dll是64位的。
那么到哪里去找真正的64位的dll呢?在这里 vs2015安装目录\VC\redist\x64,这里有正统的dll
此外,原则上x86的也应该从该处的x86目录拷贝,毕竟这是才是面向分发的。
更换dll后,问题解决。
总结:
1、出现0xc000007b——应用程序无法正常启动
其根本原因是缺乏所需要的DLL,提供了错误版本的dll相当于没有DLL,提示完全一样
2、网上有人说缺乏dx运行环境,如果属实,也是因为缺乏dx相关