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.

Respuestas a la pregunta(2)

Su respuesta a la pregunta