LabVIEW论坛
直播中

571820

12年用户 98经验值
擅长:24745
私信 关注
[问答]

DLL调用其参数为结构体,是否有简化的方法

各位大侠好:
有一个DLL需要调用,但是其中一个参数为结构体,里面有一个一维数组,比较大,想问一下,怎么做才能简单设置这个参数?
调用界面
2016-08-26_144603.jpg
lpDeviceInfo参数写成簇,里面有个48个元素的数组sSerialNumber,得一个个添加
2016-08-26_144700.jpg
请问有没有什么简单点的方法,操作。因为还有些函数里面的参数含254个元素的,那岂不是死翘翘了?
附:C的结构体
struct{  BYTE     sSerialNumber[SERIALNO_LEN];  BYTE     byAlarmInPortNum;  BYTE     byAlarmOutPortNum;  BYTE     byDiskNum;  BYTE     byDVRType;  BYTE     byChanNum;  BYTE     byStartChan;  BYTE     byAudioChanNum;........}NET_DVR_DEVICEIF,*LPNET_DVR_DEVICEIF;



已退回3积分

回帖(5)

asdasdaw

2016-8-27 08:29:37
LabVIEW簇里面的数组不用一个一个手工填数字,你用for循环创建一个数组然后把值传给簇里面的数组应该也是可以的(这里簇要用控件,不能用常量)。
举报

571820

2016-8-28 09:18:24
引用: ShuiMoLise 发表于 2016-8-27 08:29
LabVIEW簇里面的数组不用一个一个手工填数字,你用for循环创建一个数组然后把值传给簇里面的数组应该也是可以的(这里簇要用控件,不能用常量)。

那个我尝试了,簇使用控件和常量,单独情况下输出簇都是正常的
2016-08-28_091029.jpg 2016-08-28_091054.jpg
输出簇
2016-08-28_091128.jpg
但是连接上DLL函数,则LV主程序显示出错,如下图显示
2016-08-28_091637.jpg
2016-08-28_091555.jpg
C的结构体
中 sSerialNumber[SERIALNO_LEN];设置成数组的话就有问题了
举报

asdasdaw

2016-8-29 08:21:46
引用: ken0137 发表于 2016-8-28 09:18
那个我尝试了,簇使用控件和常量,单独情况下输出簇都是正常的

输出簇

你一个一个甜数字正常吗,要是正常的话。那就是我错了。
举报

571820

2016-8-29 09:22:50

这个就是正常的,是不是和dll调用中参数sSerialNumber[SERIALNO_LEN];有关系?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分