У меня есть функция в неуправляемом коде C/C++ (dll), которая возвращает структуру, содержащую массив символов. Я создал структуру C# для получения этого возвращаемого значения при вызове функции. И после вызова этой функции я получаю «System.Runtime.InteropServices.MarshalDirectiveException»
Это объявление C:
typedef struct T_SAMPLE_STRUCT {
int num;
char text[20];
} SAMPLE_STRUCT;
SAMPLE_STRUCT sampleFunction( SAMPLE_STRUCT ss );
Это объявление С#:
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.
У кого-нибудь есть подсказка или решение о том, как это сделать?