вызов неуправляемой функции char возвращает char *

У меня есть функция в неуправляемом коде C / C ++ (dll), которая возвращает структуру, содержащую массив символов. Я создал C # struct для получения этого возвращаемого значения uppon, вызывающего функцию. И после вызова этой функции я получаю 'System.Runtime.InteropServices.MarshalDirectiveException'

Это объявление C:

typedef struct T_SAMPLE_STRUCT {
int num;
char text[20];
} SAMPLE_STRUCT;

SAMPLE_STRUCT sampleFunction( SAMPLE_STRUCT ss );

Это объявление C #:

struct SAMPLE_STRUCT
{
    public int num;
    public string text;
}

class Dllwrapper
{
    [DllImport("samplecdll.dll")]
    public static extern SAMPLE_STRUCT sampleFunction(SAMPLE_STRUCT ss);

}

Я использую 1-байтовый ASCII.

У кого-нибудь есть подсказка или решение о том, как это сделать?

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

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