我在vs2010上有一個mfc C++項目。 我能夠在調試&發佈模式下構建它,但是當我在調試模式下運行它時,它會給出後續mfc100d.dll錯誤。我還安裝了C++運行環境vcredist_x86.exe
,問題仍然沒有解決。我還設置了多線程DLL(/ MD)作爲運行時庫。 我該如何解決它?VS2010中的MFC100d.dll問題
3
A
回答
0
重新安裝Microsoft SDK修復此錯誤。
5
的d
後綴的DLL的名字表明它是一個調試版本的運行時DLL的。這一點由您說當您嘗試運行該應用程序的調試版本時發生問題的事實得到證實。
默認情況下,由於很好的原因,調試版本將鏈接到運行時庫的調試版本。這些版本是而不是可再發行組件,因此未通過可再發行組件包(vcredist_x86.exe
)進行安裝。這通常不是問題:您不應該發佈應用程序的調試版本。
但是,不可再分發的調試庫隨Visual Studio一起安裝,因此您的應用的調試版本應該在您用來開發和構建它的計算機上運行良好。這可能是您要用來調試它的同一臺計算機。
此外,我已將多線程DLL(/ MD)設置爲運行時庫。需要注意這個
三個重要的事情:
你必須確保你將它設置爲正確的編譯配置(即「調試」)。
這不推薦。應用程序的調試版本應使用運行時庫的調試版本。他們在幕後做了很多事情來幫助你發現錯誤。這就是他們存在的原因。如果您不想依賴運行時庫的調試版本,請編譯和分發應用程序的發佈版本。
該開關更改您的應用程序鏈接到的運行時庫的版本C/C++。您收到錯誤消息的DLL是一個MFC運行時庫。
MFC頭文件測試是否定義了
_DEBUG
預處理器符號以確定應該鏈接運行時庫的哪個版本。由於_DEBUG
是在調試版本中自動定義的,因此它將在MFC庫的調試版本中進行鏈接。要改變這種情況,您需要做大量的人工操作,在包含MFC頭文件之前先定義這個符號,然後再重新定義它。
或者,您可以靜態鏈接到MFC,這是項目屬性中的設置。但要小心:最終會無意中混入CRT版本,這會讓您處於一個受到傷害的世界。最好只發布發佈版本並保留內部調試的調試版本。
相關問題
- 1. VS2010中的調試問題
- 2. 問題在VS2010
- 3. VS2010 devenv.exe.config問題
- 4. VS2010中C++中的定義問題
- 5. VS2010 RTM的已知問題
- 6. 解決lambda表中的VS2010 bug問題?
- 7. VS2010中ReportViewer程序集的問題
- 8. 在VS2010中導出DLL的問題(CUDA)
- 9. VS2010中的隱式行續訂問題
- 10. 關於VS2010中斷點的問題C++
- 11. f#中的縮進問題(vs2010 beta1)
- 12. 在VS2010中使用InfoPath FormControl的問題
- 13. VS2010 + Resharper 5性能問題
- 14. VS2010突出顯示問題
- 15. Vs2010循環依賴問題
- 16. vs2010和ajaxcontroltoolkit 4.0問題
- 17. 在vs2010中設置斷點問題asp.net
- 18. 在VS2010中拆分容器錨問題
- 19. 從vs2010連接到mysql的問題
- 20. 與VS2010調試奇怪的問題
- 21. VS2010,Framework 2.0和KB979909的問題
- 22. 在VS2010上使用PCL 1.6.0的問題
- 23. 與託管的ReportViewer報告問題VS2010
- 24. VS2010中的標題目錄
- 25. VS2010:在VS2010中測試的安裝腳本存在問題測試設置
- 26. VS2010,DirectX和智能感知問題
- 27. 使用VS2010編譯IBPP - 鏈接問題
- 28. VS2010 T-SQL編輯器顏色問題
- 29. 與vs2010 WCF Dataservice宿主問題
- 30. VS2010本地資源後綴問題
其實我不是那個開發這個項目的人。它被分配給我解決一些問題。顯然它不是我的機器上開發的。那麼我有沒有辦法在我的機器上調試這個項目? – foobar
@smilepleeeaz安裝Visual Studio。你打算如何調試呢? –
我正在使用Visual Studio 2010,這就是問題在調試它的地方。 – foobar