相关疑难解决方法(0)

C#PInvoke out字符串声明

在C#PInvoke中,如何传递字符串缓冲区以便C DLL填充它并返回?PInvoke宣言是什么?

C函数声明是

int GetData(char* data, int buflength);
Run Code Online (Sandbox Code Playgroud)

在C#中,我已将其声明为

[DllImport(DllName)]
static extern Int32 GetData([MarshalAs(UnmanagedType.LPStr)]StringBuilder receiveddata, Int32 buflen);
Run Code Online (Sandbox Code Playgroud)

这是对的吗?我像这样传递StringBuilder变量

int bufferLength = 32;
StringBuilder data = new StringBuilder(bufferLength);
int result = GetData(data, bufferLength);
Run Code Online (Sandbox Code Playgroud)

我想知道它是否正确?

谢谢

c# parameters pinvoke stringbuilder out

9
推荐指数
1
解决办法
7286
查看次数

标签 统计

c# ×1

out ×1

parameters ×1

pinvoke ×1

stringbuilder ×1