新手问题:如何在DLL中调用宿主程序中的函数?在线等候

rocsoar 2006-04-25 11:01:37
请问:如何才能够在DLL中调用VB主程序中的函数?找了N多资料,都没说得很详细。
最好能给个小小的示例说明,谢谢!!!!
...全文
283 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
clasj 2006-04-28
  • 打赏
  • 举报
回复
library dll;

//uses
// SysUtils,
// Classes;

{$R *.res}

procedure Init(P: Pointer);
var
Func: procedure(Str: PChar);
begin
Func:=P;
Func('Hello World!');
end;

exports
Init;

begin

end.

program exe;

{$APPTYPE CONSOLE}

uses
SysUtils;

procedure Init(P: Pointer); external 'dll.dll';

procedure CallBackFunc(Str: PChar);
begin
WriteLn(Str);
end;

begin
Init(@CallBackFunc);
ReadLn;
end.

rocsoar 2006-04-25
  • 打赏
  • 举报
回复
怎么写回调函数?能否给个示例?谢谢
sdzeng 2006-04-25
  • 打赏
  • 举报
回复
不过最好还是把公共的函数做成dll,或者像一楼说的,用回调机制
sdzeng 2006-04-25
  • 打赏
  • 举报
回复
在exe的工程文件里用exports导出
调用的时候和dll一样,LoadLibrary
ithinkthereforeiam 2006-04-25
  • 打赏
  • 举报
回复
DLL是公用的,让它调用宿主的函数,好像不和逻辑啊。
不能把那个函数写到DLL里面?
要不使用回调函数,把函数做参数传给DLL,让DLL调用。

1,183

社区成员

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

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