没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
6页
基于Visual C++6.0的DLL编程实现。搞清楚什么是DLL、如何在Windows操作系统中开发使用DLL是程序开发人员不得不解决的一个问题。本文针对这些问题,通过一个简单的例子,即在一个DLL中实现比较最大、最小整数这两个简单函数,全面地解析了在Visual C++编译环境下编程实现DLL的过程,文章中所用到的程序代码在Windows98系统、Visual C++6.0编译环境下通过。
资源推荐
资源详情
资源评论
基于 Visual C++6.0 的 DLL 编程实现
一、前言
自从微软推出 16 位的 Windows 操作系统起,此后每种版本的 Windows 操作系统都非常
依赖于动态链接库(DLL)中的函数和数据,实际上 Windows 操作系统中几乎所有的内容都由
DLL 以一种或另外一种形式代表着,例如显示的字体和图标存储在 GDI DLL 中、显示
Windows 桌面和处理用户的输入所需要的代码被存储在一个 User DLL 中、Windows 编程所
需要的大量的 API 函数也被包含在 Kernel DLL 中。
在 Windows 操作系统中使用 DLL 有很多优点,最主要的一点是多个应用程序、甚至是不
同语言编写的应用程序可以共享一个 DLL 文件,真正实现了资源"共享",大大缩小了应用程序
的执行代码,更加有效的利用了内存;使用 DLL 的另一个优点是 DLL 文件作为一个单独的程
序模块,封装性、独立性好,在软件需要升级的时候,开发人员只需要修改相应的 DLL 文件就
可以了,而且,当 DLL 中的函数改变后,只要不是参数的改变,程序代码并不需要重新编译。
这在编程时十分有用,大大提高了软件开发和维护的效率。
既然 DLL 那么重要,所以搞清楚什么是 DLL、如何在 Windows 操作系统中开发使用 DLL
是程序开发人员不得不解决的一个问题。本文针对这些问题,通过一个简单的例子,即在一个
DLL 中实现比较最大、最小整数这两个简单函数,全面地解析了在 Visual C++编译环境下编
程实现 DLL 的过程,文章中所用到的程序代码在 Windows98 系统、Visual C++6.0 编译环
境下通过。
二、DLL 的概念
DLL 是建立在客户/服务器通信的概念上,包含若干函数、类或资源的库文件,函数和数据
被存储在一个 DLL(服务器)上并由一个或多个客户导出而使用,这些客户可以是应用程序或
者是其它的 DLL。DLL 库不同于静态库,在静态库情况下,函数和数据被编译进一个二进制文
件(通常扩展名为*.LIB),Visual C++的编译器在处理程序代码时将从静态库中恢复这些函
数和数据并把他们和应用程序中的其他模块组合在一起生成可执行文件。这个过程称为"静态链
接",此时因为应用程序所需的全部内容都是从库中复制了出来,所以静态库本身并不需要与可
执行文件一起发行。
在动态库的情况下,有两个文件,一个是引入库(.LIB)文件,一个是 DLL 文件,引入库
文件包含被 DLL 导出的函数的名称和位置,DLL 包含实际的函数和数据,应用程序使用 LIB 文
件链接到所需要使用的 DLL 文件,库中的函数和数据并不复制到可执行文件中,因此在应用程
序的可执行文件中,存放的不是被调用的函数代码,而是 DLL 中所要调用的函数的内存地址,
这样当一个或多个应用程序运行是再把程序代码和被调用的函数代码链接起来,从而节省了内
存资源。从上面的说明可以看出,DLL 和.LIB 文件必须随应用程序一起发行,否则应用程序将
会产生错误。
微软的 Visual C++支持三种 DLL,它们分别是 Non-MFC Dll(非 MFC 动态库)、
Regular Dll(常规 DLL)、Extension Dll(扩展 DLL)。Non-MFC DLL 指的是不用 MFC
的类库结构,直接用 C 语言写的 DLL,其导出的函数是标准的 C 接口,能被非 MFC 或 MFC 编
写的应用程序所调用。Regular DLL:和下述的 Extension Dlls 一样,是用 MFC 类库编写的,
它的一个明显的特点是在源文件里有一个继承 CWinApp 的类(注意:此类 DLL 虽然从
CWinApp 派生,但没有消息循环),被导出的函数是 C 函数、C++类或者 C++成员函数(注
意不要把术语 C++类与 MFC 的微软基础 C++类相混淆),调用常规 DLL 的应用程序不必是
MFC 应用程序,只要是能调用类 C 函数的应用程序就可以,它们可以是在 Visual C+
+、Dephi、Visual Basic、Borland C 等编译环境下利用 DLL 开发应用程序。
常规 DLL 又可细分成静态链接到 MFC 和动态链接到 MFC 上的,这两种常规 DLL 的区别
将在下面介绍。与常规 DLL 相比,使用扩展 DLL 用于导出增强 MFC 基础类的函数或子类,用
这种类型的动态链接库,可以用来输出一个从 MFC 所继承下来的类。
扩展 DLL 是使用 MFC 的动态链接版本所创建的,并且它只被用 MFC 类库所编写的应用程
资源评论
- 爱你久久12222014-02-12比较实用,不错额
- 浅川尚清2016-03-23正需要,感谢楼主的分享~~
- txd198209272013-06-28还不错,能用。
guoleifu
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功