首先,不得不说,在windows上面编写程序就是麻烦,需要去考虑编译器版本,还需要考虑平台。在windows上面编译的程序,换到另一台windows上面,就会报各种缺失dll。
-
程序在win7上运行,会显示缺少msvcp150.dll的提示,这时候需要在开发机器中寻找。具体位置是:【E:\vs2015\VC\redist\x64】。
这是VS2015开发工具中的真正依赖文件,不要去C盘中的其他地方寻找。如果去C盘中寻找,可能会找到同名的dll,但是放到exe旁边后,会出现"应用程序无法正常启动的情况”。 具体可以参考博客“正确解决:坑爹的0xc000007b——应用程序无法正常启动” -
当完成上面这些东西以后,程序运行时可能出现缺少“api-ms-win-crt-runtime-l1-1-0.dll”等提示。这是因为编写的程序依赖了win10 SDK的东西。具体原理可以见博客“VS2015在win10上编译的程序不能在Win7上运行的原因”。 对于这个问题,可以在开发机器中找到所需dll。具体位置是:【C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs\x64】
可以参考博客“win10下vs2015编译的程序如何运行在win7等系统(无需安装Redistributable)”
通过以上操作,基本可以使得VS2015+win10上的程序运行在win7上,而不用在目标机器上安装“Visual C++ Redistributable for Visual Studio 2015 ”。附上这个插件的下载地址。Visual C++ Redistributable for Visual Studio 2015
参考
[1] http://blog.sina.com.cn/s/blog_654116410102x9hr.html
[2] https://www.cnblogs.com/foohack/p/6383717.html
[3] https://www.cnblogs.com/roadbike/p/5782014.html
[4] https://www.microsoft.com/en-us/download/details.aspx?id=48145