delphi 动态dll调用无参数procedure

小弟新手,求大神告知在DLL文件中的过程源码procedureInfShow();beginStaffIn:=TStaffIn.Create(Application);S... 小弟新手,求大神告知
在DLL文件中的过程源码
procedure InfShow();
begin
StaffIn := TStaffIn.Create(Application);
StaffIn.ShowModal;
end;
就是弹出窗口,然后 exports InfShow这个函数。
在引用的程序中,是静态
procedure InfShow(); external 'Search.dll';
然后直接在事件中InfShow()调用,是可以正常的

但问题是我想改成动态调用,该怎么实现呢?谢谢
展开
 我来答
wnh_2009
2016-05-23 · 超过11用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:23.6万
展开全部
procedure TForm1.Button1Click(Sender: TObject);
//调用Double函数
var
HInst: THandle; //声明句柄
p: Pointer; //声明一个指针
InfShow: procedure;stdcall;
begin
HInst := LoadLibrary('Search.dll'); //将指定的dll模块放入内存
if HInst <> 0 then
begin
try
p := GetProcAddress(HInst,PChar('InfShow')); //InfShow过程
if p <> nil then
begin
InfShow := p;
InfShow; //调用过程
end;
finally
FreeLibrary(HInst);
end;
end
else
ShowMessage('加载Search.dll失败!')
end;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式