2009-05-28 19 views
2

我經常在Visual 2005年或2008年,這一問題:鏈接(?隨機)失敗,視覺調試的DLL

當我編譯了一堆的DLL(本地C,C++,管理),有時,他們幾個人唐與某些微軟調試DLL鏈接正確。輸出沒有提及任何東西(沒有警告,沒有錯誤)。直到我啓動程序並在沒有更多解釋的情況下得到「模塊未發現異常」,我才知道。

當我打開我的Dependency Walker中的Dll,一些缺少MSVCR90D.DLLMSVCP90D.DLL。如果我在幸運的時刻,我只需重建已損壞的dll即可獲得有效的dll。在最糟糕的情況下,重建產生另一個損壞的DLL,直到一個神祕的時刻(幾個小時或幾天後)當一個有效的DLL ...聽起來很瘋狂,不是嗎?

有效的DLL都有這樣的路徑:

C:\ WINDOWS \ winsxs文件\ x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_f863c71f \ MSVCP90D.DLL

這是推動我瘋狂!... 有任何想法嗎 ?謝謝。

+0

任何機會的接頭是從虛擬/物理內存的?如果發生這種情況,結果是絕對瘋狂和不一致的。 – EFraim 2009-12-02 22:12:21

回答

1

使用/ MT而不是/ MD來構建。

+0

你能解釋爲什麼這樣可以解決這個問題嗎? – 2009-05-28 15:32:39

1

也許它正在弄糊塗使用哪個dll。在C:\ Program files \ Visual Studio下執行搜索 爲MSVCR90D.DLL,它應該像C:\ Program Files \ Visual Studio ??? \ sdk ... \ bin 我不確定你有什麼版本。 然後在您的環境路徑中,在那裏設置該路徑以查看該路徑。

我已經看到很多次,有很多同名的dll,程序 混淆了它應該鏈接哪一個。 試一下,看看有沒有什麼幫助

珍妮特