怎样翻译这段C代码
调用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);
谢谢!
问题点数:20、回复次数:7Top
1 楼lihuasoft(坐井观天)回复于 2006-12-01 07:49:09 得分 0
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;Top
2 楼lihuasoft(坐井观天)回复于 2006-12-01 07:51:38 得分 0
ret:=READCD(@host_list);Top
3 楼yud(东东)回复于 2006-12-01 10:58:43 得分 0
我写的代码是动态分配数组的即 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;Top
4 楼lihuasoft(坐井观天)回复于 2006-12-01 11:26:15 得分 0
个人认为问题应该在你的function READCD里Top
5 楼zswang(伴水清清)(专家门诊清洁工)回复于 2006-12-01 11:44:30 得分 0
i:=READCD(@host_list[0]);
// ~~Top
6 楼babyvs()回复于 2006-12-06 17:11:20 得分 0
host_list:array of pchar;
你用的是PCHAR 需要NEW一下才能使用
host_list[0]:='192.168.1.1';
Top
7 楼ChangWeiTu(常伟图)回复于 2006-12-08 15:04:27 得分 0
强烈鄙视问题解决后不结贴的人!
强烈鄙视技术问题解决后把贴子转移到非技术区的人!
鄙视你们!
http://community.csdn.net/Expert/topic/5216/5216675.xml?temp=.9262659Top





