Предположим, я хочу назвать C++ функции из C# кода, я имею следующую проблему:C#: DllImport - DLL не найден исключение
Случай 1:
class abc
{
private :
int a ;
public :
int getValue()
{
return 100;
}
};
int GetCounter()
{
abc* p = new abc();
int i = p->getValue();
return i;
}
Этот случай при вызове функции от C# бросает мне DLL не найденное исключение.
Случай 2:
int GetCounter()
{
int i = 333;
return i;
}
Случай при вызове функции из C# работает просто отлично.
Любые идеи, почему? Как я могу это исправить?
вы называете его, как в родной библиотеки DLL с importdll или? ..try C++/CLI – qwr
Вам придется скопировать DLL в папку сборки вашего проекта C#, чтобы его можно было найти. Проще всего сделать, добавив DLL в свой проект и установив его в каталог «Копировать в выходной каталог» в «Копировать, если новый». Остерегайтесь того, что interop должен быть предпринят только в том случае, если собственный код является надежным. Текущей версии нет, она утечки памяти. –