Passando ponteiro de char de C # para C ++ [duplicado]

Duplicata Possível:
Passando ponteiro de char de c # para função de c ++

Eu tenho esse tipo de problema:

Eu tenho uma função de c ++ com esta assinatura:

int myfunction ( char* Buffer, int * rotation)

O parâmetro buffer deve ser preenchido com caracteres espaciais (0x20 hex)

Em C ++ eu posso resolver o problema simplesmente fazendo isso:

char* buffer = (char *)malloc(256);
memset(buffer,0x20,256);
res = myfunction (buffer, rotation);

Eu estou tentando chamar essa função de c #.

Esta é minha declaração p / invoke:

[DllImport("mydll.dll", CharSet = CharSet.Ansi, SetLastError = true)]
private static extern unsafe int myfunction (StringBuilder Buffer, int* RotDegree);

Na minha classe c # eu tentei fazer isso:

StringBuilder buffer = new StringBuilder(256);
buffer.Append(' ', 256);
...
myfunction(buffer, rotation);

mas não funciona ....

Alguém pode me ajudar?

Obrigado.

questionAnswers(2)

yourAnswerToTheQuestion