У меня точно такая же проблема, как у автора этого вопроса . У меня есть проекты Visual Studio C #, из которых я пытаюсь вызвать функцию в другой DLL (которая также является частью решения).
DLL - это библиотека C ++, и экспортированная функция, которую я пытаюсь вызвать, объявлена в C # следующим образом:
[DllImport("SomeDLL.dll")]
private extern static IntPtr SomeFunction(IntPtr someVar1, IntPtr someVar2, bool someVar3);
Когда я пытаюсь вызвать функцию из C #, я вижу следующее в выводе консоли в отладчике:
'MyApp.exe': загружен
'C: \ SomePath \ Построение \ Eddy \ Debug \ SomeDLL.dll'
'MyApp.exe': выгружен
'C: \ SomePath \ Построение \ Eddy \ Debug \ SomeDLL.dll'
'MyApp.exe': загружен
'C: \ SomePath \ Построение \ Eddy \ Debug \ SomeDLL.dll'
'MyApp.exe': выгружен
'C: \ SomePath \ Построение \ Eddy \ Debug \ SomeDLL.dll'
И я получаю следующее сообщение об ошибке:
Невозможно загрузить DLL 'SomeDLL.dll':
указанный модуль не может быть найден.
(Исключение из HRESULT: 0x8007007E)
Код, о котором идет речь, прекрасно работает на моем компьютере с Windows XP. В решении также есть еще одна C ++ DLL, которая прекрасно работает.