想試下龐大的VS2005的功能,利用嚮導建立了個對話方塊程式,開始能編譯的,後來加了幾句代碼,就出現了這個錯誤“沒有找到MFC80UD.DLL,,因此這個應用程式未能啟動。重新安裝應用程式可能會修複此問題。”,我把加上的代碼刪了,還是不行。
網上找到的解決方案:“Visual Studio 2005用嚮導產生的項目,在運行時可能會遇到找不到MFC80UD.dll的問題。這個問題可能是Manifest 引起的,因此我們可以通過修改項目屬性->清單工具->輸入輸出,把“嵌入清單”選“否”,.然後編譯、連結、運行即可。”
========================================================
無法找到MSVCR80D.dll問題描述如下:當我們用VS.NET2005建立一個Win32控制台程式的時候,編譯沒有問題,但是在bedug模式調試啟動並執行時候發現,運行失敗,彈出一個無法定位組件的對話方塊,應用程式啟動失敗因為沒有找到MSVCR80D.dll,重新安裝應用程式可以修複這個問題。遇到這個問題的時候大家都會感覺到很奇怪,你尋找的時候在系統下面可以尋找到很多MSVCR80D.dll的檔案,為什麼就找不到呢?我們在Release環境下編譯試試,可以通過,但是Debug模式下還是通不過,每次建立工程都這樣。原因是VS.NET2005採用了一種新的DLL載入方案,編譯成一個exe的時候還會配有一個manifest檔案,編譯的時候在輸出視窗可以看到如下語句:Compiling manifest to resources...
Linking...
LINK : E:/Project/C++/Double/Debug/Double.exe not found or not built by the last incremental link; performing full link
Embedding manifest...一般嵌入了這個檔案,所以看不見,不過也可以不嵌入,這樣會產生一個(application name).exe.manifest的檔案,沒有exe無法運行,這是個新功能,微軟弄了一個新工具mt.exe,但是不太好用,這個問題主要是FAT32和NTFS時間戳記不一致,導致manifest無法內嵌到exe中(預設配置是內嵌的,所以報錯找不到dll檔案了),如果你的檔案分區格式是NTFS,就不會出現這樣的錯誤比較簡單的解決辦法有兩種:
- 在工程屬性->配置屬性->清單工具->常規->使用FAT32解決辦法選項選擇Yes,重新編譯工程(一定要重新編譯),Debug運行,可以通過了.
- 可以直接刪除工程下面的debug目錄,然後再重新編譯工程(一定要重新編譯),Debug運用,可以通過了.
===================================================================
Q: I've created a simple Win32 console application. When I try to debug it, I get the message:
"This application has failed to start because MSVCR80D.dll was not found. Re-installing the application may fix the problem."
我用VS2005建立了一個Win32的命令列程式,當用Debug模式時,會得到“沒有找到MSVCR80d.dll,因此這個應用程式未能啟動。重新安裝程式可能會修複此問題”。
A:In the Visual Studio Project properties of the Manifest Tool, under General you can activate "Use FAT32 Work-around". Now everything works fine.
在VS2005的項目屬性上,選擇配置屬性->清單工具->常規->使用FAT32解決辦法,選擇“是”。解決Debug模式下的問題。