调用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);谢谢!

解决方案 »

  1.   

    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;
      

  2.   

    我写的代码是动态分配数组的即 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;
      

  3.   

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

  4.   

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

  5.   

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

  6.   

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