c# - C# 从 C++ DLL 编组 unsigned char* 数组
问题描述
我正在尝试将数据从 C++ dll 编组到具有 unsigned char* 参数的 C#。我知道以前有人问过这个问题,但我已经尝试了大多数答案,但仍然没有走远......我最好的是一个字节数组,但它包含所有 0000
所以这里是 C++ 函数
int Hid_Read(int iIndex, unsigned char* pucaBuffer, int iSize);
这是 C# DLLImport
[DllImport(@"The.dll", CallingConvention = CallingConvention.Cdecl)]
internal static extern int hid_Read(int iIndex, [Out] byte[] pucaBuffer, int iSize);
和 c# 调用:-
byte[] HID_ReceiveBuffer = new byte[128];
int intResult = hid_Read(HIDdeviceIndex, HID_ReceiveBuffer, 128);
for (int inteach = 0; inteach < 128; inteach++)
{
Debug.WriteLine("Data = " + HID_ReceiveBuffer[inteach].ToString());
}
这成功退出,但在隐藏的 HID_ReceiveBuffer 中返回一个 000 的数组
任何帮助将不胜感激
解决方案
推荐阅读
- ip - 将每个主机路由替换为 ipset+mark 和一个路由
- java - 在运行时更改选项卡布局中的选项卡中的片段
- openshift - Openshift 中 H2 数据库的 URL
- primefaces - primefaces - PickList - 默认情况下,所有值都应移动到目的地
- c# - WPF C# 使用资源以获得一致的外观
- java - 如何解决 InputStream LeftoverDataException:记录 0x85 的初始化剩余 18 个字节仍有待读取
- android - 如何测试 Firebase JobDispatcher Job(每天运行)
- python - Python 在一段时间后挂起,按下 [Enter] 后继续
- haproxy - 试图让 HaProxy 将特定的 HTTP 标头记录到自定义文件中
- hibernate - 如何升级 Hibernate 4.3 --> 5.2?