如何动态调用DLL窗体

changfenglee 2011-11-19 11:27:44
我现有一个DLL文件(Bak_Data.dll),dll文件中包含一个窗体(BakForm)

DLL中输出的过程为:

procedure BakForm_Show;stdcall;
begin
if BAKForm=nil then
BAKForm:=TBAKForm.Create(Application);
BAKForm.Show;
end;

请问如何在EXE程序中动态调用这个DLL窗体,静态的方式我会,动态的老是不成功,请高手指点下!
...全文
82 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
changfenglee 2011-11-19
我在主程序中是这样写的:

procedure TMainForm.N1Click(Sender: TObject);
var
BakDll:THandle;

begin

BakDll:=LoadLibrary('Bak_Data.dll');
try
begin
if BakDll<>0 then
begin
BakForm_Show:= GetProcAddress(BakDll,'BakForm_Show')

end else
RaiseLastWin32Error;
end;
finally
FreeLibrary(BakDll);

end;
end;

这中间还差点代码来调用窗体,请问该如何写呢
回复
changfenglee 2011-11-19
搞出来了,原来是如此简单的一件事,搞明白了差点撞墙.
回复
OO_is_just_P 2011-11-19
在DLL中写一个导出函数
function SelectName(const Names:PChar):PChar;stdcall;export;
begin
FrmSelName :=TFrmSelName.Create(nil);
Try
frmSelName.Listbox1.Items.clear;
frmSelName.Listbox1.Items.AddStrings(Names);
....
ShowModal;
Finally
FrmSelName.Free;
end;
end;
回复
相关推荐
发帖
Delphi
创建于2007-08-02

4925

社区成员

Delphi 开发及应用
申请成为版主
帖子事件
创建了帖子
2011-11-19 11:27
社区公告
暂无公告