怎样翻译这段C代码 Delphi / Windows SDK/APIhttp://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