在 C# PInvoke 中,如何传递一个字符串缓冲区以便 C DLL 填充它并返回?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);
我想知道它是否正确?
谢谢