VC++动态链接库DLL编程深入浅出
1.概论
先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量,函数或类.在仓库的发展史上经历了"无库-静态链接库-动态链接库"的时代.静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了.但是若使用DLL,该DLL不必被包含在最终EXE文件中,EXE文件执行时可以"动态"地引用和卸载这个与EXE独立的DLL文件.静态链接库和动态链接库的另外一个区别在于静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库.
对动态链接库,我们还需建立如下概念:
(1)DLL 的编制与具体的编程语言及编译器无关
只要遵循约定的DLL接口规范和调用方式,用各种语言编写的DLL都可以相互调用.譬如Windows提供的系统DLL(其中包括了Windows的API),在任何开发环境中都能被调用,不在乎其是Visual Basic,Visual C++还是Delphi.
(2)动态链接库随处可见
我们在Windows目录下的system32文件夹中会看到kernel32.dll,user32.dll和gdi32.dll,windows的大多数API都包含在这些DLL中.kernel32.dll中的函数主要处理内存管理和进程调度;user32.dll中的函数主要控制用户界面;gdi32.dll中的函数则负责图形方面的操作.
一般的程序员都用过类似MessageBox的函数,其实它就包含在user32.dll这个动态链接库中.由此可见DLL对我们来说其实并不陌生.
(3)VC动态链接库的分类
Visual C++支持三种DLL,它们分别是Non-MFC DLL(非MFC动态库),MFC Regular DLL(MFC规则DLL),MFC Extension DLL(MFC扩展DLL).
非MFC动态库不采用MFC类库结构,其导出函数为标准的C接口,能被非MFC或MFC编写的应用程序所调用;MFC规则DLL 包含一个继承自CWinApp的类,但其无消息循环;MFC扩展DLL采用MFC的动态链接版本创建,它只能被用MFC类库所编写的应用程序所调用.
由于本文篇幅较长,内容较多,势必需要先对阅读本文的有关事项进行说明,下面以问答形式给出.
问:本文主要讲解什么内容
答:本文详细介绍了DLL编程的方方面面,努力学完本文应可以对DLL有较全面的掌握,并能编写大多数DLL程序.
问:如何看本文
答:本文每一个主题的讲解都附带了源代码例程,可以随文下载(每个工程都经WINRAR压缩).所有这些例程都由笔者编写并在VC++6.0中调试通过.
当然看懂本文不是读者的最终目的,读者应亲自动手实践才能真正掌握DLL的奥妙.
问:学习本文需要什么样的基础知识
答:如果你掌握了C,并大致掌握了C++,了解一点MFC的知识,就可以轻松地看懂本文.
2.静态链接库
对静态链接库的讲解不是本文的重点,但是在具体讲解DLL之前,通过一个静态链接库的例子可以快速地帮助我们建立"库"的概念.
图1 建立一个静态链接库
如图1,在VC++6.0中new一个名称为libTest的static library工程(单击此处下载本工程),并新建lib.h和lib.cpp两个文件,lib.h和lib.cpp的源代码如下:
//文件:lib.h
#ifndef LIB_H
#define LIB_H
extern "C" int add(int x,int y); //声明为C编译,连接方式的外部函数
#endif
//文件:lib.cpp
#include "lib.h"
int add(int x,int y)
{
return x + y;
}
编译这个工程就得到了一个.lib文件,这个文件就是一个函数库,它提供了add的功能.将头文件和.lib文件提交给用户后,用户就可以直接使用其中的add函数了.
标准Turbo C2.0中的C库函数(我们用来的scanf,printf,memcpy,strcpy等)就来自这种静态库.
- mfcdllwin32dll > VC 动态链接库DLL编程深入浅出
-
VC 动态链接库DLL编程深入浅出
下载该文档 文档格式:DOC 更新时间:2006-12-02 下载次数:0 点击次数:1文档基本属性 文档语言: Simplified Chinese 文档格式: doc 文档作者: 番茄花园 关键词: 主题: 备注: 点击这里显示更多文档属性 经理: 单位: 番茄花园 分类: 创建时间: 上次保存者: 修订次数: 编辑时间: 文档创建者: 修订: 加密标识: 幻灯片: 段落数: 字节数: 备注: 演示格式: 上次保存时间:
- 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
- DOC格式下载
- 更多文档...
-
上一篇:Win32环境下动态链接库
下一篇:VC 动态链接库(DLL)编程深入浅出(三)
点击查看更多关于mfcdllwin32dll的相关文档
- 您可能感兴趣的
- mfc100u.dllwin7 win764mfc71.dll win7mfc71.dll下载 mfc42d.dllwin764 mfc71.dllwin7 win32mfc mfc32.dll win32apimfc lua51win32.dll binkw32.dllwin7
- 大家在找
-
- · unix的发展史
- · 物理化学课件免费下载
- · 成都88酒吧招聘
- · 华东石油大学研究生院
- · 广州花都区
- · 2011会计基础练习题
- · 电脑桌肘部支撑设计
- · 2011中乙联赛排行榜
- · 转向节的材料
- · 矿山电工学电子书下载
- · 日立挖掘机液压系统
- · 4399功夫派灵兽刷级
- · 工程流体力学泵与风机
- · 沈阳交通违章查询网
- · freedownloadsafe.blogspot.com
- · 怎样安装条码机
- · 后多连杆独立悬架
- · 北京静音发电机出租
- · 人力资本定价
- · vipshop
- · 2010湖北高考语文试题
- · 4399怪物世界怎么充值
- · 长春一汽大众4s店
- · 计算机入门教程
- · 刀具与切削速度
- · 皮肤生理学
- · 贵州大学期末成绩查询
- · photoshopcs4绿色版
- · 法则天尊txt下载
- · 网络面试题
- 赞助商链接