翻新时间:2023-07-11
Delphi 中动态链接库(DLL)的建立和使用
关键词:
动态链接库是一个能够被应用程序和其它的DLL调用的过程和函数的集合体,它里面包含的是公共代码或资源。由于DLL代码使用了内存共享技术,在某些地方windows也给了DLL一些更高的权限,因而DLL中可以实现一些一般程序所不能实现的功能,如实现windows的HOOK、ISAPI等。同时,DLL还为不同语言间代码共享提供了一条方便的途径。因而DLL在编程时应用较为广泛,本文将介绍如何在 Delphi 中建立和使用DLL。
一.DLL 库内存共享机制
从使用效果看,DLL和unit 很像,它们都可以被别的工程模块所调用,但二者在内部的实现机制上确存在着差别。如果一个程序模块中用uses语句引用了某个unit,编译程序在编译该模块时,便会连同unit一起编译,并把编译后的可执行代码链接到本程序模块中,这就是一个程序模块能够调用所引用unit中过程和函数的原因。当同一个unit被多个工程所引用时,则每个工程中都含有该unit的可执行代码,当含有该unit的多个工程同时执行时,unit的可执行代码会随不同工程而多次被调入内存,造成内存资源的浪费。DLL则不同,它即使被某个工程调用,编译后仍是独立的,也就是说编译后,一个DLL库形成一个单独的可执行文件,而不与任何其它的可执行文件连接在一起,因而DLL库并不从属于某个特定的工程,当多个工程调用同一个DLL库时只有第一个工程把DLL库调入内存,其余工程并不重复调入同一个DLL库到内存,而是到同一个共享内存区读取。并且,DLL的执行代码是在程序运行期间动态调入的,而不是如unit在程序运行时就与整个工程一起调入内存。这样便可消除unit带来的相同代码多处占用内存的弊病。
二 Delphi中DLL库的建立
在Delphi环境中,编写一个DLL同编写一个一般的应用程序并没有太大的区别。事实上作为DLL主体的DLL函数的编写,除了在内存、资源的管理上有所不同外,并不需要其它特别的手段。 一般工程文件的格式为:
program 工程标题;
uses 子句;
程序体
而DLLs工程文件的格式为:
library 工程标题;
uses 子句;
exprots 子句;
程序体
它们主要的区别有两点:
下载文档
网友最新关注
- 神奇的手指
- 买菜
- 做鸟窝
- 放烟花
- 新的一天
- 最伤心的一件事
- 买沙发
- 快乐新本领
- 最难忘的一件事
- 温馨的家
- 海边游玩
- 吵架
- 磨豆浆
- 我的故乡
- 有趣的鱼泡泡
- 团支书学期工作总结
- 高中班主任工作计划
- 2012年高一第一学期班主任工作计划
- 2012年高中二年级班主任工作计划
- 2012年高三班主任工作计划
- 大学2010学年下学期班主任工作计划
- 2012年高三毕业班班主任工作计划
- 小学班主任德育工作计划
- 小学少先队工作总结范文
- 2012年班主任学期工作计划
- 师范专业大学生实习班主任工作计划
- 2012年一年级下学期语文班主任工作计划
- 2010学年度第二学期班主任工作计划
- 新学期小学班主任工作计划
- 新学期班主任班级工作计划
- 建筑项目节能实行能力评价的必要性
- 浅析上市公司不同的盈余管理模式和手段(1)
- 水利工程管理过程中出现的问题以及应对措
- 论行政诉讼简易程序的建构(1)论文
- 浅析中国的行政赔偿法律制度(1)论文
- 加强中小型水利工程施工质量控制的思考
- 水利工程建设现代化的管理
- 论环境侵害诉讼的特点(1)论文
- 中小企业的品牌定位策略研究(1)
- 论行政诉讼判决的拘束力(1)论文
- 水利标底审查重要性
- 水利工程灌浆技术的控制要点分析
- 论市场经济体制下我国环境资源保护法的完善(1)论文
- 论行政规范行为的司法适用力(1)论文
- 水力枢纽工程模型试验分析
- 傣族的节日
- 船的沉思
- 泼水节的由来
- 其他民族和国家的泼水节
- 傣族
- 泼水节多彩的节日活动
- 周总理与泼水节
- 欢乐泼水节
- 漫话竹楼
- 崩龙族人也过泼水节
- 僧·寺·塔
- 森林之夜
- 奇特的婚礼
- 躲不开泼水节──美丽而忘情的
- 傣家井