分隔線以上為轉(zhuǎn)載:
問題:vc2005里面編譯的程序 在xp下運(yùn)行報(bào)
"由于應(yīng)用程序配置不正確,應(yīng)用程序未能啟動(dòng)。重新安裝應(yīng)用程序可能會(huì)糾正這個(gè)問題。"
起因: 代碼以前是用vc6寫的 后來用vc2005 直接升級(jí)使用。
分析:見ck寫的 http://www.panzhishi.com/classyk/article.asp?id=4
看了 ck的文章 照著他的方法 還不行,丫 難道人品問題。后來又找到一篇文章說 加個(gè) #undef _AFXDLL 呵呵 還真行
解決方法:
-
改變運(yùn)行時(shí)庫 多線程(/mt)
-
在stdafx.h頂上面 加 #undef _AFXDLL
剛剛在網(wǎng)上看到一個(gè)文章 講得很細(xì) http://www.cnblogs.com/riky/archive/2007/05/11/743310.html 還沒試過
再次發(fā)現(xiàn): 帶上必要的dll 再帶上Microsoft.VC80.MFC.manifest Microsoft.VC80.CRT.manifest 可以運(yùn)行。。不曉得正確與否。
-----------------------------------------------------華麗的分隔線----------------------------------
遇到這個(gè)問題了,網(wǎng)上一般的說法就像上面的,但是在我的機(jī)器上試了很久也沒解決。
我的情況如下:因?yàn)閂S2005 SP1編譯出來的程序需要運(yùn)行庫支持(Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86\vcredist_x86.exe),而又不想帶上它,所以把VS2005降為無補(bǔ)丁版,重新生成了項(xiàng)目,結(jié)果還會(huì)提示上面的錯(cuò)誤,安裝了帶SP1版本的運(yùn)行庫馬上運(yùn)行正常,看來還是項(xiàng)目里面用到了SP1的運(yùn)行庫,可以項(xiàng)目都是用不帶補(bǔ)丁的版本重新生成的,怎么還要用到SP1的運(yùn)行庫呢,經(jīng)過了大半天的測(cè)試,終于找到了原因,原來項(xiàng)目里面引用了幾個(gè)LIB庫,是原來用SP1版本的編輯器生成出來的,即使重新生成的項(xiàng)目,也還是需要SP1版本的運(yùn)行庫支持的。
重新編譯所有的LIB文件,重新生成項(xiàng)目,連接,在沒有安裝SP1運(yùn)行庫的機(jī)器上運(yùn)行,一卻正常
posted on 2009-02-12 14:45
似水之心 閱讀(30449)
評(píng)論(13) 編輯 收藏 引用