delphi调用vc中的dll参数如何对应?求救!!!!!!!!

jjning12345 2003-10-20 10:03:36
vc中的函数为:
int connect_to(char *host,dpl_port_t port,conn_desc *conn);
在delphi怎么写参数?
我写的:
Tconnect_to=function(host:string;port:integer;conn:conn_desc):integer;

其中:conn_desc为结构类型

源程序:

procedure TForm1.Button1Click(Sender: TObject);
var
Handle: THandle;
fhz: integer;
connect_to:Tconnect_to;
conn:conn_desc;
begin
Handle := LoadLibrary('api.dll');
if Handle <> 0 then
begin
@connect_to:= GetProcAddress(Handle, 'connect_to');
fhz:= connect_to('192.168.0.91',1234,conn);
end;
FreeLibrary(Handle);

end;

vc中调用此函数正确,delphi中如何调用?????
我把host:string 改为host:pchar也不对,提示connect_to不足够实际参数;
fhz难接近的这里由于优化!!!!!!!
...全文
41 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Seahilly 2003-10-20
  • 打赏
  • 举报
回复
你的host类型应该没什么问题,问题出在conn:^conn_desc,不能这样定义:

Tconnect_to=function(host:pchar;port:integer;conn:^conn_desc):integer;

建议这样修改:
1、定义结构类型指针:
Type conn_desc = …… //保持原来的结构不变(注意字节对齐)
pConn = ^conn_desc; //这才是要定义的类型名:pConn

2、函数声明:

Tconnect_to=function(host:pchar;port:integer;conn:pConn ):integer;

3、函数调用:
conn:pConn //定义的变量
fhz:= connect_to(pchar('192.168.0.91'),1234, @conn); //函数调用






jjning12345 2003-10-20
  • 打赏
  • 举报
回复
哥哥,声明中改了编译都编译不过去呀
aiirii 2003-10-20
  • 打赏
  • 举报
回复
你在聲明中就要改了:
Tconnect_to=function(host:pchar;port:integer;conn:conn_desc):integer;
改為如下
Tconnect_to=function(host:pchar;port:integer;conn:^conn_desc):integer;

conn:^conn_desc;
begin
改為:
conn: conn_desc;


fhz:= connect_to('192.168.0.91',1234,conn); //错在这行,不相容类型
改為:
fhz:= connect_to(pchar('192.168.0.91'),1234, @conn);
jjning12345 2003-10-20
  • 打赏
  • 举报
回复
好象不对吧?我改了后连编译都没过哟!
Tconnect_to=function(host:pchar;port:integer;conn:conn_desc):integer;
procedure TForm1.Button1Click(Sender: TObject);
var
Handle: THandle;
fhz: integer;
connect_to:Tconnect_to;
conn:^conn_desc;
begin
Handle := LoadLibrary('api.dll');
if Handle <> 0 then
begin
@connect_to:= GetProcAddress(Handle, 'connect_to');
fhz:= connect_to('192.168.0.91',1234,conn); //错在这行,不相容类型
end;
FreeLibrary(Handle);

end;
wdonghai 2003-10-20
  • 打赏
  • 举报
回复
host为PChar型,conn:conn_desc;改为conn:^conn_desc,因为它是个指针类型

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧