VS2005编译的C++项目在没有安装VS2005的机器上无法运行

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

 

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

 

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

 

方法一:

在C:\Program Files\Microsoft Visual Studio 8\VC\redist\Debug_NonRedist\x86\Microsoft.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 Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86里面的文件。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值