递归火山软件开发平台

标题: 调用第三方 DLL, 遇到无符号字节指针和整数型指针 [打印本页]

作者: aronshen    时间: 2024-8-3 10:09
标题: 调用第三方 DLL, 遇到无符号字节指针和整数型指针

函数:int ICATCom_ReadRGBI(const int CommPort, const int Channel, unsigned char* RedValues, unsigned char* GreenValues, unsigned char* BlueValues, int* IntensityValues)
功能:读取测试仪指定通道的 RGB 和相对光强度(Intensity)的值
参数:
--ComPort: 整形数,指定的设备的串口号,如连接在 Com3, 则该参数为 3。
--Channel: 整形数,测试仪通道号,从 0 开始。0 表示第一个通道
--RedValues: 无符号字节型指针,保存返回的 Red 值(0-255)
--GreenValues: 无符号字节型指针,保存返回的 Green 值(0-255)
--BlueValues: 无符号字节型指针,保存返回的 Blue 值(0-255)
--IntensityValues:整形数指针,保存返回的 Intensity 的值(0-99999)

(, 下载次数: 27)
我用这个调用会卡死,是在哪里错了
(, 下载次数: 28)


作者: Xelloss0618    时间: 2024-8-3 10:15
按以前那样,将所有指针改成变整数,传参时 取变量地址 (无符号字节变量)
你也可以自己封装一个无符号字节指针,但没什么必要。
作者: aronshen    时间: 2024-8-3 11:27
Xelloss0618 发表于 2024-8-3 10:15
按以前那样,将所有指针改成变整数,传参时 取变量地址 (无符号字节变量)
你也可以自己封装一个无符号字节 ...


第一次使用第三方的 DLL,不知道是不是改成这样

(, 下载次数: 31)



作者: Xelloss0618    时间: 2024-8-3 11:40
是,指针传参时用 取变量地址
作者: aronshen    时间: 2024-8-3 11:47
Xelloss0618 发表于 2024-8-3 11:40
是,指针传参时用 取变量地址

谢谢你,成功了
作者: aronshen    时间: 2024-8-3 14:06
Xelloss0618 发表于 2024-8-3 11:40
是,指针传参时用 取变量地址

大佬,我还想问一下如果是文本数组和整数数组要怎么操作?谢谢
作者: Xelloss0618    时间: 2024-8-3 14:14
aronshen 发表于 2024-8-3 14:06
大佬,我还想问一下如果是文本数组和整数数组要怎么操作?谢谢

DLL的数组本质上也是指针, 整数[10] 这种基本数组就用「取数组变量地址」,整数类用「整数数组类.取数组指针」。
文本数组比较难搞,要看文本编码,目前没什么现成的写法。




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4