dll动态调用dll传参数的问题

sknighty 2006-10-23 11:10:53
需要在一个a.dll中动态调用另一个b.dll,a.dll中有方法 get(i:integer):stdcall;在这个方法中调用了b.dll中的方法send(i:integer;str:string):stdcall,可是sendzhong的参数i怎么也得不到get传过来得参数i,是怎么一会事.
...全文
161 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
do2008 2006-10-24
  • 打赏
  • 举报
回复
>>我跟啦
>>调用都正确,exe调用get有参数,但在get函数中显示i的值为空;

应该是dll函数的类型没有声明对,或者有可能是exe没有正确的加载dll,

楼主,打开dll的project,然后设置好host application 为你的exe,

然后在get函数中下个断点,看看exe调用get(5),为什么会没有传进来
ly_liuyang 2006-10-24
  • 打赏
  • 举报
回复
DLL接口不要用String!
用PChar的
sknighty 2006-10-24
  • 打赏
  • 举报
回复
Tgeturl=procedure(KeyWord,hIp: string; Fmaxpagecount,hport: integer);stdcall;

var
geturl:Tgeturl;

procedure TForm1.Button1Click(Sender: TObject);
var
Fhand:Thandle;
begin
Fhand:=loadlibrary('aa.dll');
@geturl:=getprocaddress(fhand,'Geturl');
geturl(trim(edit1.Text),'192.161.56.29',1,5096);
freelibrary(fhand);
end;


Tsend =function(port:integer; url, siteurl, sitename, song, singer, special, ip:string):
boolean; stdcall;
var
sendstr: Tsend;

procedure Geturl(KeyWord,hIp: string; Fmaxpagecount,hport: integer);
var
ip:string;
i,port: Integer;
Fhandle: Thandle;
begin
showmessage(inttostr(hport)); 这里显示不是5096
ip:=hip;
port:=hport;
showmessage(ip); 这里显示不是'192.161.56.29'
showmessage(keyword); 这个显示正常即(edit1.Text)的值
showmessage(inttostr(Fmaxpagecount)); 这里显示是0不是1
try
Fhandle := loadlibrary(pchar('send.dll'));
@sendstr := Getprocaddress(Fhandle, 'sendstr');
if sendstr(port, url, siteurl, sitename, song, singer, special, ip)then


到底怎么一会事,搞不明白
sknighty 2006-10-23
  • 打赏
  • 举报
回复
我跟啦
调用都正确,exe调用get有参数,但在get函数中显示i的值为空;

外部exe中
get(5)

get函数这样

get(i:integer);stdcall;
var
m:integer;
begin
m:=i;
end;
m的值为空;

do2008 2006-10-23
  • 打赏
  • 举报
回复
一步一步跟综测试

1.检查你的外部exe调用a.dll的get(i:integer),i 是否已经传进去了

2.检查a.dll的get函数,对b.dll的send函数调用是否正确~~~
newfang 2006-10-23
  • 打赏
  • 举报
回复
不明白你是具体怎么传的~~两个DLL是不能共享全局变量的!
可以通过消息传递或者通过函数返回值!
SuanAddMiao 2006-10-23
  • 打赏
  • 举报
回复
你用的是过程,而不是函数,所以没有返回值。楼主先把process和function搞清楚。

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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