1. 程式人生 > >一個關於VS2008在其他未安裝VS2008的電腦上無法執行編譯的程式的問題

一個關於VS2008在其他未安裝VS2008的電腦上無法執行編譯的程式的問題

這個應該是個向我這樣菜鳥普遍碰到的問題 一個困擾我很久的問題=.=

呵呵 剛開始學C++的時候就開始用VS2008(VC2008,VS9.0)了

當然新手剛開始學C++的時候都會新建Win32控制檯程式的專案了

這倒沒什麼問題 但編譯後生成的.exe應用程式不能在別的電腦上執行

(當時我花了很久時間做了一個漢諾塔的遊戲 本來想給朋友玩玩的 結果...唉...)

經過我反覆試驗 證明了這個程式只能在安裝過VS2008上的電腦執行

而沒有安裝過的電腦 不論是XP還是Vista都不行

那些的電腦總會出現如下的錯誤資訊:

由於應用程式配置不正確,應用程式未能啟動。重新安裝應用程式可能會糾正這個問題。

當然為了一個小遊戲要求別人裝一個3.7G的VS2008的程式不太可能吧

之後在網上搜索了挺久的 找到了兩個方法(搜尋結果也幾乎都是這兩種方法) 但是都不能解決這個問題

第一個是說安裝一個微軟釋出的vcredist_x86.exe(2.6 MB)補丁就行了

不過經過試驗 雙方電腦上安裝這個補丁都沒用

第二個方法就是安裝Framework啦

結果網上一搜 Framework有300來MB!!!

讓朋友下載了半天結果安裝到一半就顯示安裝失敗 幾次都是

然後又在微軟官網找到了一個2.6MB的Framework

結果下載下來是個下載程式 而且也是安裝到一半就失敗了 鬱悶啊...

(另外我也下載過一個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了

呵呵 我也是查了很久才查到這些辦法的

也希望我這些努力對大家有所幫助啦