我與這個question中的海報完全一樣的問題。我有一個Visual Studio C#項目,我試圖從另一個DLL中調用函數(這也是解決方案的一部分)。Windows 7中的C#DLL問題
的DLL是一個C++一個和導出功能我想打電話給在C#中聲明如下:
[DllImport("SomeDLL.dll")]
private extern static IntPtr SomeFunction(IntPtr someVar1, IntPtr someVar2, bool someVar3);
當我嘗試調用從C#我看到的功能在控制檯上以下在調試器輸出:
'MyApp.exe將':加載 'C:\ SomePath \構建\渦\調試\ SomeDLL.dll'
'MyApp.exe的':卸載 「C:\ SomePath \ Build \ Eddy \ Debug \ SomeDLL.dll'
我的電腦「:已加載 'C:\ SomePath \ Build \ Eddy \ Debug \ SomeDLL.dll'已加載 'C:\ SomePath \ Build \ Eddy \ Debug \ SomeDLL.dll'
「
和我碰到下面的錯誤對話框:
無法加載DLL 'SomeDLL.dll':該 指定的模塊找不到。 (來自HRESULT的異常:0x8007007E)
有問題的代碼在我的同事windows XP機器上工作正常。解決方案中還有另一個C++ DLL可以正常工作。
正如你已經標記了Windows 7 - 64位,有可能你的dll可能是32位特定的,或者它可能依賴於32位dll。您可以嘗試爲x86平臺構建項目,並檢查錯誤是否消失(僅查看32位/ 64位是否存在問題)。 – VinayC 2010-09-07 05:45:57