C# PInvoke で、文字列バッファを渡して C DLL がバッファを埋めて戻るようにするにはどうすればよいですか? PInvoke 宣言はどうなりますか?
C 関数の宣言は次のとおりです。
int GetData(char* data, int buflength);
C# では、次のように宣言しました。
[DllImport(DllName)]
static extern Int32 GetData([MarshalAs(UnmanagedType.LPStr)]StringBuilder receiveddata, Int32 buflen);
それが正しいか?このように StringBuilder 変数を渡しています
int bufferLength = 32;
StringBuilder data = new StringBuilder(bufferLength);
int result = GetData(data, bufferLength);
私はそれが正しいかどうか知りたいですか?
ありがとう