在C#PInvoke中,如何傳遞字符串緩衝區,以便C DLL填充它並返回?什麼是PInvoke聲明?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);
我想知道的是它正確與否?
謝謝
這是正確的,如果它的工作原理。沒有明顯的理由不應該起作用。 – 2010-01-03 11:20:13