请教GaryLin 点击:627 | 回复:3



人在何处

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:5帖 | 7回
  • 年度积分:0
  • 历史总积分:28
  • 注册:2004年3月22日
发表于:2004-04-18 10:06:00
楼主
Function ReadChannel(Channel:THandle; Buf:Pointer; Length:DWORD;   Overlap:POverlapped):Integer;stdcall; 启动指定的通道执行AD转换操作,将结果存入指定的缓冲区。   Channel:通道句柄,OpenChannel 函数的返回值。 Buf: 接收AD转换结果的缓冲区指针。 Length: AD转换次数。每次AD转换的结果是一个12位整数(0-4095),占用一个 字(WORD)的存储空间,因此,Buf 指向的缓冲区至少要能容纳Length 个字,也就是2×length 个字节。   Overlap:执行异步IO时,必须是指向一个OVERLAPPED结构的指针;如果是同步IO 操作,则可以为NULL。关于异步IO的进一步说明,请参阅Win32 程序员 参考。 返回值:实际执行的AD转换次数(也就是存入Buf 的转换结果的个数)。如果要 转换成存入Buf 的字节数,将返回值×2 即可。 这是PS-2116数据采集卡的一个外部函数,我想在VB中调用,我不太明白它关于buf overlap 的设定,你能不能给我举例说明一下这两个参数的设定.



GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2004-04-19 09:44:00
1楼
试试看下面的用法... Buf : Array [1..1000] of WORD; // 1000 is the number of data ReadChannel(Channel, @Buf, 1000, NIL); 若还是不行... 那就找厂家问问吧!

人在何处

  • 精华:1帖
  • 求助:0帖
  • 帖子:5帖 | 7回
  • 年度积分:0
  • 历史总积分:28
  • 注册:2004年3月22日
发表于:2004-04-19 13:10:00
2楼
请问一下我可不可以这样编? readchannel(channel,@buf,1,null)

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2004-04-19 13:53:00
3楼
Try it! You will get the answer!

热门招聘
相关主题

官方公众号

智造工程师