C# PInvoke представляет объявление в виде строки

В 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);

Я хотел бы знать, что это корректно или нет?

Спасибо

9
задан akif 3 January 2010 в 10:02
поделиться