2011-06-13 66 views
0

我有一個非託管C++ DLL,這是在另一個C#項目中導入的。我正在嘗試訪問它中的第一個方法時發現「DLL未找到此DLL的異常。 walker它抱怨「msvcr90d」。我hav在VS 2008中使用.Net Framework 2.0和C#項目在VS 2010中使用框架3.5創建的eC++項目未找到DLL在導出的非託管C++ DLL中出現異常

有沒有什麼方法可以找到缺失的鏈接?

感謝

回答

1

msvcr90d.dll是MSVCR90.DLL的調試版本...你在遇到此問題你的開發機器還是另一臺機器(沒有安裝VS)?如果您僅在沒有安裝Visual Studio的計算機上遇到問題,則應該執行發佈版本而不是調試版本。

+0

我在開發機器上遇到它。 – Rahul 2011-06-13 13:30:14

0

來自Dependancy Walker的投訴很可能是誤導性的。這個問題可能與清單有關,但也可能不是。您可以嘗試幾個選項(可能相結合),並看看會發生什麼:

  1. 使用釋放DLL在調試C#
  2. 從DLL刪除清單,或放一個,如果清單實際上是缺少
  3. 地方都需要C#.exe所在的DLL文件
  4. 檢查並仔細檢查調試和發佈DLL之間沒有區別,除了不同的底層DLL之外。
相關問題