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")); все работает нормально.

0 ответов

Другие вопросы по тегам