DLLImport C++ библиотеки и ошибка "Attempted to read or write protected memory" - C#

Узнай цену своей работы

Формулировка задачи:

Нужно прикрутить метод из С++ библиотеки myDll.dll. Выглядит его прототип так
int MyMethod(unsigned char* materials,
             unsigned int materialCount,
             unsigned int materialLength,
             char* filePath,
             unsigned int shift,
             unsigned int length, 
             unsigned char** seq,
             unsigned int* seqLength);
В С# коде пишу
[DllImport("MyDll.dll")]
public static extern int MyMethod(byte[] materials,
                                  uint materialCount,
                                  uint materialLength,
                                  string filePath,
                                  uint shift,
                                  uint length, 
                                  ref byte[] seq,
                                  ref uint seqLength);
Во время непосредственного вызова метода получаю ошибку AccessViolationException "Attempted to read or write protected memory. This is often an indication that other memory is corrupt" "Погуглив" на множестве форумов, выяснил, что причина может быть в некорректном использовании типов ... Подскажет может кто более конкретную причину такого исключения?

Решение задачи: «DLLImport C++ библиотеки и ошибка "Attempted to read or write protected memory"»

textual
Листинг программы
char* filePath,
...
unsigned char** seq

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.5 из 5
Похожие ответы