在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