- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章 Windows编程基础 7.1 动态链接库(DLL) 7.2 Windows API及其函数 7.3 消息处理 7.4 多线程编程 7.5 文件访问 7.1 动态链接库(DLL) 一、什么是DLL 二、DLL项目文件 三、创建DLL 四、DLL中的初始化代码 五、调用DLL 一、什么是DLL Windows允许同时运行的多个程序共享一组函数的单一拷贝,于是引入了动态链接方式,将可共享的程序代码以及各种数据资源编译成单独的模块,即动态链接库(DLL)。 二、DLL项目文件 在Delphi的IDE中,编写DLL程序与一般的应用程序没有太大的区别,除了在内存、资源管理上有所不同外,区别主要体现在项目文件上。项目文件是一个应用程序项目的主程序。选择执行菜单【Project】→【View Source】项,可以在编辑窗口打开相应的项目文件。 DLL项目文件的格式如下: library 程序标识符号; uses 单元列表; exports 过程和函数标识符列表; begin 程序体; end. 三、创建DLL 创建DLL项目的一般步骤如下: (1)利用Delphi的应用程序模板,建立一个DLL程序框架; (2)保存文件; (3)直接在DLL项目文件内编写过程和函数代码,或将过程和函数代码组织为一个单元,并在DLL项目文件中引用该单元; (4)需要被其他应用程序动态链接的过程或函数,必须在过程或函数头的尾部加上export编译指令,同时将这些过程和函数名在DLL项目文件的保留字exports后列出; (5)编写DLL的初始化代码,这一步是可选的; (6)编译程序,生成DLL文件。 四、DLL中的初始化代码 DLL加载时一些必要的初始化操作如开锁数据段、分配内存等,由系统自动完成。在需要的情况下,可以在DLL项目文件的begin…end.之间添加自定义的初始化代码,来完成下列一些操作: l?初始化变量、分配全局内存块、登录窗口对象等初始化工作。 l??设置DLL退出时需要执行的某些自定的操作。 五、调用DLL 1. 静态引入 静态引入又称为隐式调用,即把DLL过程或函数视为一个外部过程或函数来定义,使用时与一般过程或函数相同,看不出它是一个DLL。当隐式调用DLL的应用程序启动后,立即静态引入DLL的过程或函数。如果此DLL不存在,那么程序刚启动就提示错误,并终止程序的运行。 2. 动态引入 不必在应用程序启动时立即静态引入DLL,可在程序运行的必要时刻,动态引入DLL。动态方式不仅灵活,而且较为安全。缺陷是:若DLL文件较大,且引入时为首次引导加载,则影响运行速度。 7.2 Windows API及其函数 一、Windows API函数分类 二、API函数调用 一、Windows API函数分类 Windows API由其定义的数据结构、常量和数百个函数组成,它们分布于Windows提供的众多动态链接库中。根据API函数的来源以及Delphi所定义的相对应单元,可将API函数做出如表7-3的划分 。 二、API函数调用 Delphi中已经定义了相应的单元,给出了所有Windows API函数的编程接口,因此可以在Delphi程序中直接调用API函数。虽然API函数调用就是DLL调用,但在Delphi中调用API函数非常简单,不需要声明外部引入,只需在Uses保留字后声明相应的单元即可。DLL引入的操作定义已由Delphi预先定义的单元完成。 7.3 消息处理 一、Windows的消息机制 二、Delphi的消息处理 三、发送消息 四、响应消息 一、Windows的消息机制 Windows并不通知应用程序应该完成什么工作,而是通知应用程序发生了什么事情,这便是所谓的消息,然后,由截获消息的应用程序自己决定如何去处理这些事件。 一个应用程序一旦启动,Windows便为该应用程序建立一个消息队列(message queue),开始且陆续地将与该应用程序有关的消息加入它的队尾。应用程序则要逐个地将其消息队列中的队头消息取出,筛选出有用的消息,再指派给某个窗口过程,由其对消息进行处理和做出响应。从某种意义上讲,Windows的应用程序不过是一个消息处理器。事件就是被消息所驱动的。每个应用程序内部必定有一段循环程序,负责检索其消息队列,这段特殊的程序称为消息循环(message loop)。 消息的数据结构在Windows中被定义为如下的记录类型: TMessage = record Msg: Cardinal; WParam: Word; LParam: Longint; Result: Longint; end; 消息定义为如下的TMsg
您可能关注的文档
- C语言程序设计(第三版) 丁亚涛 第12章 面向对象及C++简介新.ppt
- C语言程序设计第二版 课件及实例-夏宽理赵子正编著 第2章 基本数据及其运算新.ppt
- C语言程序设计第二版 课件及实例-夏宽理赵子正编著 第4章 数组新.ppt
- C语言程序设计第二版 课件及实例-夏宽理赵子正编著 第8章 数据文件处理技术新.ppt
- C语言程序设计教程 李淑华 第01讲 C语言概述新.ppt
- C语言程序设计教程 李淑华 第02讲 数据与表达式新.ppt
- C语言程序设计教程 李淑华 第03讲 运算符以及数据类型新.ppt
- C语言程序设计教程 李淑华 第04讲 数据的输入输出新.ppt
- C语言程序设计教程 李淑华 第05讲 条件语句新.ppt
- C语言程序设计教程 李淑华 第07讲 循环控制 2 新.ppt
- 福莱特玻璃集团股份有限公司海外监管公告 - 福莱特玻璃集团股份有限公司2024年度环境、社会及管治报告.pdf
- 广哈通信:2024年度环境、社会及治理(ESG)报告.pdf
- 招商证券股份有限公司招商证券2024年度环境、社会及管治报告.pdf
- 宏信建设发展有限公司2024 可持续发展暨环境、社会及管治(ESG)报告.pdf
- 品创控股有限公司环境、社会及管治报告 2024.pdf
- 中信建投证券股份有限公司2024可持续发展暨环境、社会及管治报告.pdf
- 洛阳栾川钼业集团股份有限公司环境、社会及管治报告.pdf
- 361度国际有限公司二零二四年环境、社会及管治报告.pdf
- 中国神华能源股份有限公司2024年度环境、社会及管治报告.pdf
- 广西能源:2024年环境、社会及治理(ESG)报告.pdf
最近下载
- 机械行业“人形机器人的Optimus时刻”系列(五):触觉感知(电子皮肤),高山将越,坦途在望.pdf
- 培训教材污水处理厂运营管理方案.pptx VIP
- 纪检委处理回复函.docx
- AP微积分BC 2016年真题 (选择题+问答题) AP Calculus BC 2016 Released Exam and Answers (MCQ+FRQ).pdf VIP
- 武汉市2025届高中毕业生四月调研考试(四调)物理试卷(含答案).pdf
- 《西安事变》课件.ppt VIP
- 排水沟设计计算11.xls VIP
- 2010版中药典,中国药典2010年版.doc
- 精彩拍摄跟我来.docx
- 小学常用单词分类汇总衡水体英语字帖(含例句).pdf
文档评论(0)