• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Delphi函数指针,用于加载DLL

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

要点:

1.DLL用exports加函数名表示导出这个函数

2.Assigned函数判断参数释放为nil,也就是是否存在

3.LoadLibrary用来加载一个DLL文件,参数为完整路径(同一目录下,可只写DLL文件名)。使用完了,要记得用FreeLibrary关闭这个打开的句柄

4.GetProcAddress判断dll中,是否存在某个导出的函数,返回值是这个函数的句柄。

5.type PMyFunc = procedure (para : Integer); 表示定义了一个名字叫PMyFunc的过程,只有1个Integer型参数

 

program MyPoint;  //指针详解
{$APPTYPE CONSOLE}
uses
  SysUtils,windows,Generics.Collections ;

{函数指针,用于加载DLL}
procedure MyFunc6();
{TianPan.dll文件源码如下:
procedure MyADDFunc(TemNo : Integer);
begin
  Writeln(TemNo*2);
end;
exports
MyADDFunc;
}
type PMyFunc = procedure (para : Integer);//函数原型
var
  MyFunc : PMyFunc;//定义函数指针
  MyHandle : HMODULE;//定义dll句柄
begin
  MyHandle := LoadLibrary('TianPan.dll');
  if  MyHandle > 0  then   //如果dll存在
  begin
   MyFunc := GetProcAddress(MyHandle, 'MyADDFunc');//获取地址
    if Assigned(MyFunc) then //dll中函数存在
      MyFunc(2)       //调用函数
    else
    Writeln('DLL中的MyADDFunc函数不存在!');
  end else
  Writeln('DLL不存在!');
  FreeLibrary(MyHandle); //释放句柄
end;

{main主函数}
begin
 MyFunc6();
 Readln;//回车退出
end.

 

 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi获取IdHTTP1.Get(url)的返回参数发布时间:2022-07-18
下一篇:
刹车距离问题matlab参数估计发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap