发表于:2003-11-10 21:51:00
楼主
我最近正在用PCI9112编程序。
我用的开发环境为:delphi6。
在调用
AI_ContScanChannels (0, channel, 2, Buffer1, count,rate, SYNCH_OP);
时出错:floating point overflow
该函数在dask.pac中是这样声明的:
function AI_ContScanChannels (CardNumber:Word; Channel:Word; AdRange:Word;
var Buffer: word; ReadCount:Cardinal; SampleRate:Double; SyncMode:Word) : Smallint;stdcall;
我试了
AI_ReadChannel (0, Channel, 2, Value);
结果是对的。
应该是AI_ContScanChannels ()中的buffer定义有问题!!!
但是我对比了C++和VB中的该函数声明:
Buffer 在C++中为:U16 *Buffer
在VB中为:Buffer As Integer
buffer 应该为一个指向内存的指针或数组(VB).
可是delphi的数组应该定义为: array of word
我把dask.pac中function AI_ContScanChannels
改为function AI_ContScanChannels (CardNumber:Word; Channel:Word; AdRange:Word;
var Buffer:array of word; ReadCount:Cardinal; ampleRate:Double; SyncMode:Word): Smallint;stdcall;
可是一运行还是出同样的错误。
郁闷死了。
帮帮我把。