この質問の投稿者とまったく同じ問題が発生しています。別のDLL(これもソリューションの一部です)で関数を呼び出そうとしているVisual Studio C#プロジェクトがあります。
DLLはC++のものであり、私が呼び出そうとしているエクスポートされた関数は、C#で次のように宣言されています。
[DllImport("SomeDLL.dll")]
private extern static IntPtr SomeFunction(IntPtr someVar1, IntPtr someVar2, bool someVar3);
C#から関数を呼び出そうとすると、デバッガーのコンソール出力に次のように表示されます。
' MyApp.exe ':ロード済み'C:\ SomePath \ Build \ Eddy \ Debug \ SomeDLL.dll''MyApp.exe' :アンロード
済み'C:\ SomePath \ Build \ Eddy \ Debug \ SomeDLL.dll''MyApp.exe
':ロード済み' C:\ SomePath \ Build \ Eddy \ Debug \ SomeDLL.dll'
' MyApp.exe':アンロード済み' C:\ SomePath \ Build \ Eddy \ Debug \ SomeDLL.dll '
そして、次のエラーダイアログが表示されます。
DLL'SomeDLL.dll'を読み込めません:指定されたモジュールが見つかりませんでした。(HRESULTからの例外:0x8007007E)
問題のコードは、同僚のWindowsXPマシンで正常に機能します。ソリューションには、正常に動作する別のC++DLLもあります。