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.