我是靠谱客的博主 动人方盒,最近开发中收集的这篇文章主要介绍VS2005编译的C++项目在没有安装VS2005的机器上无法运行,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最经在研究C语言调用Windows Api写Win32程序,编译器是VS2005(项目是C++ -> Win32),发现在一台未安装VS2005的机子上双击运行,会提示:

 

“由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题”。百度了一下,发觉很多人都有这个问题,有网友还提到“原来用VC6和VS2003的话,是会提示缺少“*.dll”,但是用VS2005却没有这样的提示”。

 

对于这个问题,综合网上的几种解决方法,现总结如下:

 

方法一:

在C:Program FilesMicrosoft Visual Studio 8VCredistDebug_NonRedistx86Microsoft.VC80.DebugCRT 下找到了下列文件:

msvcm80d.dll

msvcp80d.dll

msvcr80d.dll

Microsoft.VC80.DebugCRT.manifest

把这几个文件拷贝到目标机器上,与运行程序同一文件夹或放到system32下,就可以运行那个程序了。其他release版,MFC程序什么的都是拷redist下相应文件夹下的文件就可以了,文件夹后都有标识!

这个方法经我的实践是没用的,估计是MFC的项目才有用。

 

方法二:

修改编译选项。原来,在VS2005里面编译的程序默认的配置是“多线程DLL”,其实也就是动态链接运行库的DLL,文件小,但需要客户机安装运行库。还有一个选项是“多线程”,这个选项就是静态链接运行库,文件大,优点是不需客户机安装运行库。

解决方式就是将/MD或/MDd 改为 /MT或/MTd,这样就实现了对VC运行时库的静态链接,在运行时就不再需要VC的dll了。

这种方法较通用,但生成的文件会比较大,所以对小程序比较适合。

 

方法三:

设定MFC的静态编译。

打开工程属性,配置属性->常规->MFC的使用,选择“在静态库中使用mfc”。

这个方法仅适合调用MFC的程序,像我这样直接调用Windows Api的Win32项目用这种方法是不行的。

 

方法四:

客户机上安装vc运行库分法包,文件名为vcredist_x86.exe,或者到C:Program FilesMicrosoft Visual Studio 8SDKv2.0BootStrapperPackagesvcredist_x86里面的文件。

最后

以上就是动人方盒为你收集整理的VS2005编译的C++项目在没有安装VS2005的机器上无法运行的全部内容,希望文章能够帮你解决VS2005编译的C++项目在没有安装VS2005的机器上无法运行所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(32)

评论列表共有 0 条评论

立即
投稿
返回
顶部