Pasando el puntero de caracteres de C # a C ++ [duplicado]
Posible duplicado:
Pasando el puntero de caracteres de C # a la función c ++
Tengo este tipo de problema:
Tengo una función c ++ con esta firma:
int myfunction ( char* Buffer, int * rotation)
El parámetro del búfer debe rellenarse con caracteres espaciales (0x20 hex)
En C ++ puedo resolver el problema simplemente haciendo esto:
char* buffer = (char *)malloc(256);
memset(buffer,0x20,256);
res = myfunction (buffer, rotation);
Estoy tratando de llamar a esta función desde C #.
Esta es mi declaración de invocación:
[DllImport("mydll.dll", CharSet = CharSet.Ansi, SetLastError = true)]
private static extern unsafe int myfunction (StringBuilder Buffer, int* RotDegree);
En mi clase de C # he intentado hacer esto:
StringBuilder buffer = new StringBuilder(256);
buffer.Append(' ', 256);
...
myfunction(buffer, rotation);
pero no funciona ...
¿Alguien puede ayudarme?
Gracias.