Как сохранить переменную uint8_t *, возвращенную функцией C ++, в c #?

Я звоню на C ++ dll из моей программы на C #. DLL состоит из нескольких функций, и я могу вызвать большинство из них, кроме этой.

Функция C ++ выглядит следующим образом:

 __declspec(dllexport) uint8_t* myHash(const char *filename)
    {
         uint8_t *hash = (unsigned char*)malloc(72*sizeof(uint8_t));
         //some processing on hash  
         return hash;
    }

Как видно из приведенного выше кода, хеш-функция хранит массив символов. Я хочу получить значения в моей программе на C #, но я не могу это сделать.

Мой код на C # выглядит примерно так:

 [DllImport("myHash.dll", CharSet = CharSet.Ansi)]
        public static extern IntPtr myHash(string filename);

    IntPtr ptr = myHash(fileA);
            char[] result = new char[72];
            Marshal.Copy(ptr, result, 0, 72);

Ответы на вопрос(1)

Ваш ответ на вопрос