怎样翻译这段C代码

怎样翻译这段C代码 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiAPI/html/delphi_20061201065700143.html
调用Dll文件中的一个函数  
  int   ret;  
  char   *   host_list[3]   =   {"192.168.0.2",   "192.168.0.3",   ""};  
   
  //   初始化布控函数库  
  ret   =   READCD(host_list);  
   
  其中READCD是DLL文件定义的函数,声明如下  
  int   READCD(char   **   host_list);  
   
  谢谢!

var  
      ret:integer;  
      host_list:array[0..2]   of   pchar;  
  begin  
      host_list[0]:=pchar('192.168.0.2');  
      host_list[1]:=pchar('192.168.0.3');  
      host_list[2]:=pchar('');  
      ret:=READCD(host_list);  
  ...  
  end;

ret:=READCD(@host_list);

我写的代码是动态分配数组的即   SetLength(Host_list,3),运行一运行就跳出内存地址错误,不知哪位朋友能否赐教?  
   
  这是我写的  
  function   READCD(host_list:Pointer):integer;stdcall;external   'RCode.dll';  
   
  var  
  i:integer;  
  host_list:array   of   pchar;  
  begin  
          i:=-1;  
          SetLength(host_list,3);  
          host_list[0]:='192.168.1.1';  
          host_list[1]:='192.168.1.2';  
          host_list[2]:='192.168.1.3';  
          i:=READCD(@host_list);  
          ShowMessage(IntToStr(i));  
  end;

个人认为问题应该在你的function   READCD里

i:=READCD(@host_list[0]);  
  //                                       ~~

host_list:array   of   pchar;  
   
      你用的是PCHAR   需要NEW一下才能使用  
  host_list[0]:='192.168.1.1';  
   
 

强烈鄙视问题解决后不结贴的人!  
  强烈鄙视技术问题解决后把贴子转移到非技术区的人!  
  鄙视你们!  
   
  http://community.csdn.net/Expert/topic/5216/5216675.xml?temp=.9262659

转载于:https://www.cnblogs.com/delphi2007/archive/2008/09/23/1296521.html

  • 0
    点赞
  • 0
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值