开发环境下可以正常执行的应用程序,在非开发环境中运行时,可能会出现下图的错误提出窗口。
产生这个问题的原因是依赖的某些运行库缺失造成的。
看到一篇文章,比较有帮助:
在VS2005下用C++写的程序,在一台未安装VS2005的系统上,
用命令行方式运行,提示:
“系统无法执行指定的程序”
直接双击运行,提示:
“由于应用程序的配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。”
以前用VC6和VS2003的话, 如果缺少库文件,是会提示缺少“**.dll”,但是用VS2005却没有这样的提示。
自己实验了一下,感觉以下几种解决办法是可行的:
方法一
在类似C:\Program Files\Microsoft Visual Studio 8\VC\redi
st\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT 下找到了下列文件:
msvcm80d.dll
msvcp80d.dll
msvcr80d.dll
Microsoft.VC80.DebugCRT.manifest
把这几个文件拷贝到目标机器上,与运行程序同一文件夹或放到system32下,就可以正确运行了。
其他release版、MFC程序什么的都是拷redist下相应文件夹下的文件就可以了,文件夹后都有标识!
方法二
修改编译选项,将/MD或/MDd 改为 /MT或/MTd,这样就实现了对VC运行时库的静态链接,在运行时就不再需要VC的dll了。
方法三
工程-》属性-》配置属性-》常规-》MFC的使用,选择“在静态库中使用mfc”
这样生成的exe文件应该就可以在其他机器上跑了。
方法四
你的vc8安装盘上找到再分发包vcredist_xxx.exe和你的程序捆绑安装
相关链接:
1. 解决“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题”
2. “由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。”
3. 由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。