翻新时间: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 子句;
程序体
它们主要的区别有两点:
下载文档
网友最新关注
- 家乡变了
- 小插曲
- 早晨
- 橘子
- 晨练
- 我的“自画像”
- 苹果
- 我
- 找工作
- 扫地
- 一次有趣的游戏
- 仙人球
- 我是一片云
- 我爱春天
- 春天来了
- 家装节活动策划方案
- 青年志愿者下乡活动方案
- 中小学校园网建设方案
- 希望工程答谢晚会策划方案
- 公司新员工娱乐联欢活动方案
- 百货商场端午节活动方案
- 网上办公系统安全方案
- 2011酒吧文化节招商赞助活动方案
- 中学庆祝“五四”大合唱晚会活动方案
- 智能信息化停车场建设方案
- 文档安全管理系统建设方案
- 办公自动化系统解决方案
- 中学校园文化设计方案
- 大学生大型环保公益晚会活动策划书
- 学校校园文化、社团组织建设方案
- 浅谈在中小学音乐教学中学科综合的实施
- 如何让通俗音乐进职业学校学前教育课堂
- 关于高速公路隧道病害整治技术探讨
- 论合唱艺术在音乐教育中的作用
- 从中国钢琴曲的创作谈音乐的民族性
- 试论古筝艺术的表情性
- 数字化技术在高速公路勘察设计中的应用
- 以基础设施建设推动我国城市交通的发展
- 俗乐舞台探索
- 浅析公路几何设计与交通安全
- 浅谈原生态民歌的艺术特征及其发展
- 如何在音乐课堂中传承民族音乐文化
- 小提琴的练习曲与音阶
- 公路路基施工
- 浅谈民族音乐文化传承在音乐教育中的重要性
- 《秋天的图画》教案
- 《我选我》教案
- 《纸船和风筝》教案
- 《一分钟》教案
- 《农业的变化真大》教案
- 《古诗两首》教案
- 《称赞》教案
- 《难忘的一天》教案
- 《我是什么》教案
- 《黄山奇石》教案
- 《风娃娃》教案
- 《父亲和鸟》教案
- 《浅水洼里的小鱼》教案
- 《植物妈妈有办法》教案
- 《一株紫丁香》教案