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