【发布时间】:2015-05-15 23:59:25
【问题描述】:
当我尝试使用静态数组而不是动态数组时,我似乎找不到任何信息或理解为什么编译器会抛出错误“E2029 'OF' expected but '[' found”。
我从一个 DLL 文件中调用函数,所以我有这个代码:
function RetrieveDSOData(whatchannels: uchar; var DSOCH1, DSOCH2: array of double;
var LADATA: array of ushort; Nth_Sample: uchar): longint;
stdcall; external 'E_l80.dll';
这可以编译,但是我在 DLL 文件中有 AV 错误,并且由于我怀疑问题是动态数组没有指定大小,所以我想将它抛出一个静态数组。
但是,如果我用
编写上述函数DSOCH1, DSOCH2: array [0..31] of double;
我收到上面提到的编译器错误。
附加信息: 我有关于如何使用为 C 编写的这个 DLL 的说明,由于我几乎不知道,我可能会遗漏这些数组周围的其他内容: 这是原来的功能:
long RetrieveDSOData(unsigned char whatchannels, double *DSOCH1,
double *DSOCH2, unsigned short *LADATA, unsigned char Nth_Sample)
有这样的解释:
*DSOCHX: A pointer to an array of points from the DSO channels.
*LADATA: A pointer to an array of LA data
任何帮助将不胜感激。 (请不要仅仅为了删除最后一句话而编辑这个问题......没有意义......)
【问题讨论】:
-
您是否尝试过定义自己的类型并改用它?
type TMyArray = array[0..31] of Double; -
你需要创建一个类型别名
TMyArray = array[0..31] of double,然后使用TMyArray。 -
是的。给出的提示(以及答案中)确实让我通过了编译器,但是现在应用程序在调用函数时挂起...... :(你碰巧在问题的第二部分帮助我......?
标签: delphi