В C# PInvoke, как я передаю строковый буфер так, чтобы DLL C заполнил его и возвраты? Каково будет объявление 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);
Я хотел бы знать, что это корректно или нет?
Спасибо