由於應用程式配置不正確,程式未能啟動”--原因及解決方案

來源:互聯網
上載者:User

由於應用程式配置不正確,程式未能啟動”--原因及解決方案

http://moogge.spaces.live.com/blog/cns!ab9b00d806d52aed!245.entry


問題描述:

當運行由VC 2005 編譯的程式時,出現錯誤訊息“由於應用程式配置不正確,程式未能啟動.重新安裝應用程式可能會糾正這個錯誤”

解決方案:

在目標機器安裝VCRedist_x86.exe可以解決這個問題。該檔案可以在MSDN網站上下載。
地址:http://www.microsoft.com/downloads/details.aspx?FamilyId=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=en
如果是64位機器,請用x64版本和ia64版本

原因:

一般認為,VC2005編譯出來的東西,如果用了atl或者mfc,需要atl80.dll 或者msmfc80.dll,我在一開始的時候也是這麼認為的,我把這兩個檔案放在了path中可以找到的地方。因此用depends看出來是沒問題的。

是事實上,從VC2005開始,(可能2003,但是我沒有用過)這些dll是不像以前的程式那樣直接被載入進進程的。查看%SYSTEMROOT%/
winsxs會發現裡面有很多類似於x86_Microsoft.VC80.ATL_1fc8b3b9a1e18e3b_8.0.50727.42_x-
ww_6e805841的目錄,這些目錄裡麵包含了atl80.dll, msmfc80.dll。然後在manifests
目錄裡面有對應的manifests:x86_Microsoft.VC80.ATL_1fc8b3b9a1e18e3b_8.0.50727.42_x
-ww_6e805841.manifest

這是VC8的一個改變。VC8編譯的程式在運行時載入動態庫(crt, mfc, atl
)都是放在一個類似全域類型庫的地方。不再像以前MS所建議的那樣,為了避免dll
hell而把動態庫放在程式同級目錄。而這個全域類型庫的地方就是winSxS,同時載入之前還需要有該dll對應的manifest。

具體載入dll的時候為什麼需要Manifest我不是很清楚,Visual C++ 2005的 program manager Martyn Lovell在他的blog中有提到要解釋這樣做的原因,但是至今沒有下文:(

暫時能夠知道的是,載入dll需要manifest,沒有manifest的動態庫即使放在path下也不會載入。而VCRedist_x86.exe會幫你把manifest和dll放在正確的地方。

參考:

Redistribution of VC++ files(VC80)
http://msdn2.microsoft.com/en-us/library/ms235299(VS.80).aspx

VC8 使用WinSxS的原因:
Martyn Lovell‘s blog


VC++2005 console 程式錯誤:由於應用程式的配置不正確,應用程式未能啟動,重新安裝
作者:佚名  出處:中國自學編程網收集整理   發布日期:2008-09-10  

今天在用VC++2005寫一個控制台程式的時候,提示一下錯誤

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

下面是

在網上查了查,說是有可能沒裝Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)的問題,這個好辦,直接從MS網站上下了一個,重起,還不行。

試了一下release版,可以使用,細想,debug下有許多調試資訊,是不是跟這些些庫有關係

msvcm80d.dll
msvcp80d.dll
msvcr80d.dll
Microsoft.VC80.DebugCRT.manifest

要使應用程式連結這些庫,可以

工程-》屬性-》配置屬性-》常規-》MFC的使用,選擇"在靜態庫中使用mfc"
run,一切OK,

第一回用2005的console程式,看來和VC6.0還是有一定區別。

==================================VC2005程式的一個運行錯誤“由於應用程式的配置不正確,應用程式未能啟動,重新安裝...”2008-04-02 10:52

轉貼(可行)

VC.net2005寫的程式如何在沒有.Net FrameWork的機器上運行 --解決"由於應用程式的配置不正確,應用程式未能啟動,重新安裝應用程式可能會糾正這個問題"

最近在公司的主要工作是做一個傳統型程式,提供給公司正在為移動做的項目使用.我開始時是用C#寫的程式,後來,公司要求,不安裝.net
framwork 2.0,
要求我改成C++的.所以後來改成VC2005和程式.原來以為可以不用安裝,附帶幾個DLL庫就可以運行程式了,哪知道,開始時,在別的電腦上都不能運
行,一運行就報錯,在XP如的錯誤如:

在2000上也會報錯,不過,他會提示:因為少了XXX
DLL,程式無法啟動,於是我找到所以提示缺少的DLL放到程式目錄下,2000下就可以運行了.可是在XP上還是不行,還是會報上面那個錯誤,我猜肯定
是少了哪個DLL,可是找不出來,同事們也用了好多方法幫我找程式用到的DLL,也用到了不少的好工具,也找出了好多DLL,這些DLL加到一起,有10
幾M那麼多(如).可是XP下還是不行.看來找DLL是沒辦法了.到網上找找辦法吧.

到百度裡輸入"由於應用程式的配置不正確",搜尋一下,嘿嘿,還真不少,都是和我一樣,VC2005寫的程式,在2000下可以用,在XP,
2003下不行,不過發現,都是有人問,沒人回答,可憐的人啊,咋就和我一樣不幸呢.繼續找啊找啊,找到了,找到一個人,提供了三個方法,摘下來,如下:

最近在VS2005下用C++寫了一個Console程式,在一台未安裝VS2005上運行,顯示:
"系統無法執行指定的程式"

原來用VC6和VS2003的話,是會提示缺少"**.dll",但是用VS2005卻沒有這樣的提示。

用命令列方式運行,提示:
"系統無法執行指定的程式"
直接雙擊運行,提示:
"由於應用程式的配置不正確,應用程式未能啟動,重新安裝應用程式可能會糾正這個問題"

自己實驗了一下,感覺以下兩種解決辦法是比較方便的:
方法一:
在C:/Program Files/Microsoft Visual Studio 8/VC/redi
st/Debug_NonRedist/x86/Microsoft.VC80.DebugCRT 下找到了下列檔案:

msvcm80d.dll
msvcp80d.dll
msvcr80d.dll
Microsoft.VC80.DebugCRT.manifest

把這幾個檔案拷貝到目標機器上,與運行程式同一檔案夾或放到system32下,就可以運行那個程式了。

其他release版,MFC程式什麼的都是拷redist下相應檔案夾下的檔案就可以了,檔案夾後都有標識!

方法二:
修改編譯選項,將/MD或/MDd 改為 /MT或/MTd,這樣就實現了對VC執行階段程式庫的靜態連結,在運行時就不再需要VC的dll了。

方法三:

工程-》屬性-》配置屬性-》常規-》MFC的使用,選擇"在靜態庫中使用mfc"
這樣產生的exe檔案應該就可以在其他機器上跑了。

方法四:

你的vc8安裝盤上找到再分發包vcredist_xxx.exe和你的程式捆綁安裝

我逐一測試下來,直到第三個方法才成功.第二個方法不知道在哪裡修改編譯選項所以放棄了,第四個方法不喜歡,這跟直接安裝.net framework 2.0 有什麼區別嗎?還不如直接安裝.net framework 2.0 呢.

使用第三種方法,編譯後,程式的檔案會變大好多,因為其已經將使用到的DLL庫靜態編譯到了程式裡了.我這個程式原來的大小是288K,:

而採用第三種方法產生的程式卻有2.85M那麼大,如所示:

不過比起那麼多的DLL來,這點大小不算什麼.不過,在運行時,相信佔用的記憶體應該會多一點.

如果你正在使用VC2005,也出現這樣問題的話,就試試上面的方法吧.

類別:vc開發

| 添加到搜藏

| 瀏覽(300)
| 評論 (0)

 上一篇:C/S分布式通訊(SOCKET技術)    下一篇:安裝檔案的打包

http://hi.baidu.com/can2786/blog/item/fa8a1fed9aec7ad0b31cb187.html

點捷徑時出現“由於應用程式配置不正確,應用程式未能啟動。...
點捷徑時出現“由於應用程式配置不正確,應用程式未能啟動。重新安裝應用程式可能會糾正這個問題。” 懸賞分:5 - ... 案頭捷徑無法開啟對應的應用程式??? ...
zhidao.baidu.com/question/19594853.html 12K 2007-2-5 - 百度快照
zhidao.baidu.com 上的更多結果

VC++2005 console 程式錯誤:由於應用程式的配置不正確,應用程式..
"由於應用程式的配置不正確,應用程式未能啟動,重新安裝應用程式可能會糾正這個問題" 下面是 在網上查了查,說是...run,一切OK, 第一回用2005的console程式,看來和VC6.0還是有一定區別。 相關文章 關於VC++2005 console 程式錯誤:...
www.zxbc.cn/html/20080910/65505.html 18K 2008-11-1 - 百度快照
www.zxbc.cn 上的更多結果

由於應用程式配置不正確,程式未能啟動,重新安裝應用程式可能會...
編寫的MFC動態串連的程式,在自己的機器上運行正常,在2000系統的測試機上運行也正常,但就是在XP系統的測試機上運行會出現“由於應用程式配置不正確,程式未能啟動,重新安裝應用程式可能會糾正這個問題。”這樣的錯誤。 只有使用MFC的動態串連...
topic.csdn.net/t/20060731/09/4915878.html 12K 2006-10-25 - 百度快照
topic.csdn.net 上的更多結果

0號空間: “由於應用程式配置不正確,程式未能啟動”--原因及解...
編譯的程式時,出現錯誤訊息“由於應用程式配置不正確,程式未能啟動.重新安裝應用程式可能會糾正這個錯誤”解決方案:在目標機器安裝VCRedist_x86.exe可以解決這個問題。該檔案可以在MSDN網站上下載。地址:http://www.microsoft.com/downloads/...
moogge.spaces.live.com/blog/cns!ab9b00d80 ... 51K 2008-4-23 - 百度快照

VC2005程式的一個運行錯誤“由於應用程式的配置不正確,應用程式...
--解決"由於應用程式的配置不正確,應用程式未能啟動,重新安裝應用程式可能會糾正這個問題" 最近在公司的主要工作是做...把這幾個檔案拷貝到目標機器上,與運行程式同一檔案夾或放到system32下,就可以運行那個程式了。 其他release版,MFC程式...
hi.baidu.com/can2786/blog/item/fa8a1fed9a ... 22K 2008-4-3 - 百度快照
hi.baidu.com 上的更多結果

轉:解決VC2005程式的一個運行錯誤“由於應用程式的配置不正確,...
在VC程式中使用調試語句 在vc中使用MSXML解析xml檔案 轉:解決VC2005程式的一個運行錯誤“由於應用程式的配置不正確,應用程式未能啟動,重新安裝應用程式可能會糾正這個問題”VC 擷取預設印表機vc中的控制項使用(CTreeCtrl,CComboBox,CFileDialog)...
www.diybl.com/course/3_program/vc/vc_js/2 ... 21K 2008-9-11 - 百度快照
www.diybl.com 上的更多結果

由於應用程式配置不正確,程式未能啟動”解決方案! - 體育音樂遊...
由於應用程式配置不正確,程式未能啟動”解決方案! 問題描述: 當運行極品飛車11(裝過1.1補丁後) 出現由於應用程式配置不正確,程式未能啟動,重新安裝應用程式可能會糾正這個錯誤 : 解決方案: 在目標機器安裝VCRedist_x86.exe可以解決...
bbs.xunlei.com/viewthread.php?tid=1743719 72K 2008-10-13 - 百度快照

由於應用程式配置不正確,應用程式未能啟動。重新安裝應用程式可能..
由於應用程式配置不正確,應用程式未能啟動。重新安裝應用程式可能會糾正這個問題 ■ 由於應用程式配置不正確,應用程式未能啟動。重新安裝應用程式可能會糾正這個問題 一直用Adobe Dreamweaver CS3綠色免安裝版,最近重裝作業系統後,再次運行dw,...
www.qt56.com/blog/err.html 13K 2008-10-20 - 百度快照

由於應用程式配置不正確,應用程式未能啟動.重新安裝應用程式可能...
由於應用程式配置不正確,應用程式未能啟動.重新安裝應用程式可能會糾正這個問題 由於應用程式配置不正確,應用程式未能...去bitcomet首頁下個zip版的,不用安裝直接解壓縮就可以用。 我一直用0.59 zip版的 關於殺毒軟體: 殺毒不如防毒!!...
it.dahe.cn/bbs/read.php?tid=1030 23K 2008-11-18 - 百度快照

隨讀語音朗讀-由於應用程式配置不正確,應用程式未能啟動
2008-5-13 1:49:2由於應用程式配置不正確,應用程式...否則程式啟動時將會報告錯誤,無法運行。 系統中沒有安裝...
www.zero-z.cn/freadblog/post/5.html 8K 2008-5-13 - 百度快照


1 [2] [3] [4] [5] [6] [7] [8] [9] [10] 下一頁

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.