请教一个调用dll的问题

2019-07-18 02:53发布

本帖最后由 unicornchen 于 2015-9-3 14:37 编辑

    小弟接触labview不久,最近在用LabVIEW控制一个CONTEC 的板卡PIO-32DM,是用官网的lib文件开发的,由于在之前开发的基础上,所以调用的之前的dll。板卡是数字量输入输出(DIO),实现发送和采集功能分别用到以下两个函数。
    (A)DioDmSetBuffer (HANDLE hDrv, DWORD Dir, DWORD *Buff, DWORD dwLen, DWORD IsRing)
    (B)DioDmStart(HANDLE hDrv, DWORD Dir);
基本过程是,先设置控制寄存器的一些功能(这部分没问题),需要发送时,先调用函数(A),再调用函数(B)。G程序如下,(send时没问题,Value to Send 中的数据依次发出去):

     但是接收的时候问题就来了。显示不出来。利用dll中有一个统计接收FIFO缓存的函数,可以读出来接收到的数据的数量(数量也是正确的),但是就是没法在显示控件中显示出来。编程如附图(接收程序1 和 接收程序2)(dll中参数设置跟上一副图一样)    我觉得可能是内存地址的问题,不知道是不是内存地址找错了,或者是因为C语言和G语言在某些方面不兼容。各位大侠帮帮小弟吧,感激不尽!!!
G程序(发送时) G程序(发送时)
参数设置 参数设置
接收的G程序1 接收的G程序1
接收的G程序2 接收的G程序2
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。