博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DLL技术应用03 - 零基础入门学习Delphi46
阅读量:6946 次
发布时间:2019-06-27

本文共 1083 字,大约阅读时间需要 3 分钟。

DLL技术应用03

 

让编程改变世界

Change the world by program


 

DLL的加载和调用

  [caption id="attachment_2685" align="alignnone" width="500"] DLL的加载和调用[/caption]  

静态载入 DLL

  [caption id="attachment_2686" align="alignnone" width="500"] 静态载入 DLL[/caption]   静态载入 DLL 的前提是在编译之前已经明确知道要调用 DLL 中的哪几个函数,编译时在目标文件中只保留必要的链接信息,而不包含 DLL 函数的代码。 在程序执行时, 利用链接信息加载 DLL 函数代码并在内存中将其链接进入调用程序的执行空间,从而实现了代码的重用。  

动态载入 DLL

  [caption id="attachment_2687" align="alignnone" width="500"] 动态载入 DLL[/caption]  

方法是:

 
用 LoadLibrary 函数加载动态链接库到内存,用 GetProcAddress函数动态获得 DLL 函数的入口地址。 当一个 DLL 文件用 LoadLibrary 显式加载后,在任何时刻均可以通过调用 FreeLibrary 函数显式地从内存中把它给卸载。
  动态载入方式是指在编译之前并不知道将会调用哪些DLL函数,完全是在运行过程中根据需要决定应调用哪些函数。 动态调用使用的 Windows API 函数主要有3个,分别是LoadLibrary(SafeLoadLibrary)、GetProcAddress和FreeLibrary。 小甲鱼在论坛发帖详细介绍这三个函数的功能,因为无论学习编程还是逆向这是三个函数都是非常常用滴:  

调用 DLL 中的过程和函数

  [caption id="attachment_2688" align="alignnone" width="500"] 调用DLL中的过程和函数[/caption]  

强化练习

 
编写一个应用程序,调用上节课所建立的DLL中的Max和Min函数,要求分别使用隐式调用和显式调用来实现。
参考代码: [buy]   [/buy] [Downlink href='http://kuai.xunlei.com/d/BdsUAwI6rQBZQNBR60d']视频下载[/Downlink]

转载于:https://www.cnblogs.com/LoveFishC/p/3846345.html

你可能感兴趣的文章
每秒处理3百万请求的Web集群搭建-用 LVS 搭建一个负载均衡集群
查看>>
js toggle事件
查看>>
WebViewJavascriptBridge
查看>>
js 返回并刷新
查看>>
append()与extend()
查看>>
ASPxGridview使用总结(DEVExpress)
查看>>
.NET设计模式(9):桥接模式(Bridge Pattern)
查看>>
极速理解设计模式系列:16.迭代器模式(Iterator Pattern)
查看>>
50个带给你灵感的基于文字的创新Logo设计 - 第一部分
查看>>
恢复右键菜单的“新建”选项
查看>>
Linux面试时遇到的问题
查看>>
【转载】浅谈C#中的延迟加载(1)——善用委托
查看>>
舒服的颜色1
查看>>
Apache HTTP Server 与 Tomcat 的三种连接方式
查看>>
WAMP Server 和IIS 7在Windows中同时运行,更改 Wampserver默认端口的解决方法
查看>>
Memcached
查看>>
C#简单注册表操作实例
查看>>
8天学通MongoDB——第五天 主从复制
查看>>
expect
查看>>
利用...来字符检測(swift)
查看>>