System.AccessViolationException в CSharp-Wrapper для CPP
Мы хотим иметь оболочку csharp для существующей dll и теперь пытаемся написать оболочку для dll, чтобы обернуть ее в csharp.
код C++:
extern "C" __declspec(dllexport) int test(unsigned char* initValue)
{
//// Get a handle to the DLL module.
HINSTANCE hinstLib = LoadLibrary(TEXT("test.dll"));
return 0;
}
Оболочка C#:
public class TestWrapper
{
[DllImport("cppWrapper.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern int test(byte[] outInitValue);
}
Но сделайте это исключение:
System.AccessViolationException: 'Attempted to read or write protected memory. This is often an indication that other memory is corrupt.'
"Test.dll" - это DLL WIN32 (x86), но мы изменили тип сборки на x86, но это не сработало. БезLoadLibrary(TEXT("test.dll"));
все работает нормально.