使用一个c写的dll,其中一个导出函数原型如下:
int c_func(const char * text, char *** words, int * size);
该函数接受一个字符串text, 输出一个2维数组(即:一个c字符串的数组)和该数组的第一维大小(即:字符串的数目)。该数组所占空间由被调函数分配。
为了在delphi中使用这个函数,我在delphi中声明了该函数的原型如下:
type
PStrings = ^PAnsiString;
function c_func(const text: PChar; words: PStrings; size: PInteger): integer;
以上声明在delphi中可以通过编译,下面是使用:
var
words: PAnsiString;
i, size: integer;
//...
Text2Words(PChar(Edit1.Text), @words, @size);
for i := 0 to size do
begin
Memo1.Lines[i] := String(words[i]); //这一行编译有错误——“Array type required”
end;
words是一个二维数组的首地址,words[i]应该即一个AnsiString类型。但是编译器总报错,怎么
办啊? 请高手指教!