您当前的位置:delphi教程 > Delphi语言基础 > 在delphi中调用c api的一个类型转换问题([char ***] to [delphi type])

在delphi中调用c api的一个类型转换问题([char ***] to [delphi type])

使用一个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类型。但是编译器总报错,怎么  
  办啊?   请高手指教!  
   
   
 


查看回复
关于我们 | 网站地图 | 广告刊登 | 友情链接
Copyright ©2008 - 2010  Delphi2007.net  ,All Rights Reserved  粤ICP备09038647号
业务联系:allceoad#gmail.com QQ:20008835 最佳分辨率 1024×768