calling función no administrada char devuelve char *
Tengo una función en código C / C ++ no administrado (dll) que devuelve una estructura que contiene una matriz de caracteres. Creé C # struct para recibir este valor de retorno uppon llamando a la función. Y al llamar a esta función, obtengo 'System.Runtime.InteropServices.MarshalDirectiveException'
Esta es la declaración C:
typedef struct T_SAMPLE_STRUCT {
int num;
char text[20];
} SAMPLE_STRUCT;
SAMPLE_STRUCT sampleFunction( SAMPLE_STRUCT ss );
Esta es la declaración de C #:
struct SAMPLE_STRUCT
{
public int num;
public string text;
}
class Dllwrapper
{
[DllImport("samplecdll.dll")]
public static extern SAMPLE_STRUCT sampleFunction(SAMPLE_STRUCT ss);
}
Estoy usando ASCII de 1 byte.
Alguien tiene una pista o una solución sobre cómo hacer esto?