一个关于VS2008在其他未安装VS2008的电脑上无法运行编译的程序的问题

时间:2021-06-01 04:46:47

这个应该是个向我这样菜鸟普遍碰到的问题 一个困扰我很久的问题=.=

 

呵呵 刚开始学C++的时候就开始用VS2008(VC2008,VS9.0)了

当然新手刚开始学C++的时候都会新建Win32控制台程序的项目了

这倒没什么问题 但编译后生成的.exe应用程序不能在别的电脑上运行

(当时我花了很久时间做了一个汉诺塔的游戏 本来想给朋友玩玩的 结果...唉...)

 

经过我反复试验 证明了这个程序只能在安装过VS2008上的电脑运行

而没有安装过的电脑 不论是XP还是Vista都不行

那些的电脑总会出现如下的错误信息:

由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。

当然为了一个小游戏要求别人装一个3.7G的VS2008的程序不太可能吧

 

之后在网上搜索了挺久的 找到了两个方法(搜索结果也几乎都是这两种方法) 但是都不能解决这个问题

第一个是说安装一个微软发布的vcredist_x86.exe(2.6 MB)补丁就行了

(Microsoft Visual C++ 2005 Redistributable Package (x86)源地址: http://www.microsoft.com/downloads/details.aspx?FamilyID=32bc1bee-a3f9-4c13-9c99-220b62a191ee&displaylang=zh-cn)

不过经过试验 双方电脑上安装这个补丁都没用

 

第二个方法就是安装Framework啦

结果网上一搜 Framework有300来MB!!!

让朋友下载了半天结果安装到一半就显示安装失败 几次都是

然后又在微软官网找到了一个2.6MB的Framework

(Microsoft .NET Framework 3.5 Service Pack 1 源地址: http://www.microsoft.com/downloads/details.aspx?FamilyID=ab99342f-5d1a-413d-8319-81da479ab0d7&DisplayLang=zh-cn)

结果下载下来是个下载程序 而且也是安装到一半就失败了 郁闷啊...

(另外我也下载过一个60多MB的Framework 也是安装失败)

 

但皇天不负有心人啊!! 最近终于被我找到了解决方法了

其实只用改一下项目的属性就行了

方法如下:

新建一个项目之后 按顺序点击菜单栏上面的

项目 >> XXX(项目名) 属性 >> 配置属性 >> 常规 >> MFC的使用 >> 在静态库中使用 MFC

        配置属性 >> C/C++ >> 代码生成 >> 多线程调试(/MTd)

英文版的是

Project >> XXX Property>> Configuration Properties >> General >> Use of MFC >> Use Mfc Static
        Configuration Properties >> C/C++ >> Code Generation >> Multithreaded, static link (debug) /MTD

然后调试或生成就可以编译出可以再其他没有安装VS2008的电脑上的程序了

而且你会发现.exe文件大了很多

像我原来的汉诺塔游戏只有45.5KB 改了项目属性之后就有450KB!!

而需要做如此更改的原因是因为运行时库的dll在各种不同版本的操作系统下可能不一样

这是高手说的 我现在还不懂 呵呵

 

不过更改后有可能会发生另一个编译错误 其显示的错误信息是

general error c101008a: Failed to save the updated manifest to the file "./Debug//_bpW.exe.embed.manifest". Bpcn
出现这个错误不用担心 很容易就解决

主要是因为你在更改之前调试过该程序

点击菜单栏上的 : 生成 >> 清理 XXX(项目名)

英文版为 : Compile>> Clean XXX

再重新生成.exe文件就OK了

 

 

呵呵 我也是查了很久才查到这些办法的

也希望我这些努力对大家有所帮助啦