首页 > 解决方案 > 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 的数组

任何帮助将不胜感激

标签: c#c++chardllimportunsigned

解决方案


推荐阅读