C # PStringdeklaration auslösen

Wie übergebe ich in C # PInvoke einen Zeichenfolgenpuffer, damit die C-DLL ihn füllt und zurückgibt? Was wird die PInvoke-Deklaration sein?

Die Deklaration der C-Funktion lautet

int GetData(char* data, int buflength);

In C # habe ich es als deklariert

[DllImport(DllName)]
static extern Int32 GetData([MarshalAs(UnmanagedType.LPStr)]StringBuilder receiveddata, Int32 buflen);

Ist es richtig? Ich übergebe die StringBuilder-Variable wie folgt

int bufferLength = 32;
StringBuilder data = new StringBuilder(bufferLength);
int result = GetData(data, bufferLength);

Ich würde gerne wissen, ob es richtig ist oder nicht.

Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage