我正在将一个非托管 DLL 中的函数导入 C#。C++函数签名如下
int RF_PowerOnEx(int nDev, int nCardType, DWORD* pdwRXSize, BYTE* lpbRXData)
我按如下方式导入它
[DllImport("TP9000.dll")]
public static extern int RF_PowerOnEx(int nDev, int nCardType, out int pdwRXSize, out byte[] lpbRXData);
但是这样做会给我一个 System.AccessViolationException。我已成功导入除此特定功能之外的其他功能。pdwRXSize 和 lpbRXData 都被视为输出。整数和缓冲区被初始化,然后传递给函数,然后填充缓冲区。帮助!!!!我似乎能够将输入参数传递到 DLL,但无法获取输出参数。我试过传递一个 Stringbuilder 对象无济于事。有谁能够帮我?谢谢!
编辑:错字