大家好,我用delphi做了一个读取excel然后返回数组的dll,现在我在返回值上有疑问在dll里:我先在type里定义arr2:=array of string;一个string类型的数组,然后我开始写主要的方法,如下:function readxls(diradd:string):arr2;stdcall;经过一系列的读取操作,得到一个数组arr1,然后我用循环的方式将数组arr1赋值到result里面作为返回,代码如下:
for i:=1 to xx do
result[i-1]:=arr1[i];这样写完编译是通过的,生成了dll文件,然后我在其他地方调用,代码如下:首先我在代码里定义了一个arr2如下:arr2:=array of string;然后在一个事件里调用方法,如下:arr2:=readxls('xxxxxxxxxx')编译未通过,说是类型不一样,一个string一个是array,为什么返回值变成了string呢?谢谢各位大侠了。
for i:=1 to xx do
result[i-1]:=arr1[i];这样写完编译是通过的,生成了dll文件,然后我在其他地方调用,代码如下:首先我在代码里定义了一个arr2如下:arr2:=array of string;然后在一个事件里调用方法,如下:arr2:=readxls('xxxxxxxxxx')编译未通过,说是类型不一样,一个string一个是array,为什么返回值变成了string呢?谢谢各位大侠了。
Buff: array of char;function readxls(diradd:PChar):PChar;stdcall;PChar实际上是一个指针类型,array of char就是PChar。你可以看一下定义就知道了。