这个应该是个向我这样菜鸟普遍碰到的问题 一个困扰我很久的问题=.=
呵呵 刚开始学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了
呵呵 我也是查了很久才查到这些办法的
也希望我这些努力对大家有所帮助啦