重複の可能性:
charポインターをC#からc++関数に渡す
私はこのタイプの問題を抱えています:
私はこの署名を持つc++関数を持っています:
int myfunction ( char* Buffer, int * rotation)
バッファパラメータはスペース文字(0x20 hex)で埋める必要があります
C ++では、これを行うだけで問題を解決できます。
char* buffer = (char *)malloc(256);
memset(buffer,0x20,256);
res = myfunction (buffer, rotation);
この関数をC#から呼び出そうとしています。
これは私のp/invoke宣言です:
[DllImport("mydll.dll", CharSet = CharSet.Ansi, SetLastError = true)]
private static extern unsafe int myfunction (StringBuilder Buffer, int* RotDegree);
私のC#クラスでは、これを実行しようとしました。
StringBuilder buffer = new StringBuilder(256);
buffer.Append(' ', 256);
...
myfunction(buffer, rotation);
しかし、それは機能しません...。
誰でも私を助けることができますか?
ありがとう。