《对话框》之《MFC的DLL》
7. MFC的DLL 一般的,在介绍Windows编程的书中讲述DLL的有关知识较多,而介绍MFC的书则比较少地提到。即使使用MFC来编写动态链接库,对于初步接触DLL的程序员来说,了解DLL的背景知识是必要的。另外,MFC提供了新的手段来帮助编写DLL程序。所以,本节先简洁的介绍有关概念。 《对话框》之《MFC的DLL》章节主要探讨了如何使用Microsoft Foundation Classes (MFC)框架来创建和使用DLL(动态链接库)程序。在Windows编程中,DLL是一种非常重要的技术,它允许多个应用程序共享同一块代码或数据,从而节省系统资源,提高程序的复用性。 我们来理解DLL的基础知识。DLL分为静态链接和动态链接两种类型。静态链接是在编译阶段就将所需的函数代码合并到最终的可执行文件中,而动态链接则是在程序运行时才加载相应的DLL文件。动态链接又分为加载时动态链接和运行时动态链接。加载时动态链接在程序启动时由操作系统负责查找和加载DLL,而运行时动态链接则是由程序自身使用API如`LoadLibrary`和`GetProcAddress`动态地加载和调用DLL中的函数。 MFC为创建DLL提供了便利,它可以生成输入库(.lib)和动态链接库(.dll)。输入库包含了DLL中函数和数据的动态链接信息,而输出文件(.exp)则记录了输出函数和数据的具体信息。此外,映像文件(.map)提供了关于DLL模块的详细结构,包括模块名、时间戳、函数和数据的位置等。 创建DLL时,开发者通常使用`lib.exe`工具来生成输入库和输出文件,但在MFC环境中,链接器会自动处理这些步骤。链接规范是连接不同语言编写的函数或过程的规则,MFC默认使用C++规范,但也可以声明C链接的函数,通过特定的预处理器指令来实现跨语言兼容。 修饰名(Decoration name)是C++中为了支持名称修饰(Name Mangling)而产生的,它是C++编译器对函数和成员函数名称进行的内部转换,以便能够处理重载和模板。在C++中,若要声明一个C风格的函数,通常需要使用`extern "C"`来避免名称修饰。 在MFC中创建DLL,开发者需要理解DLL的接口设计,包括导出类、导出函数和全局变量的声明。MFC提供了一些宏,如`AFXdeclspec(dllexport)`和`AFXdeclspec(dllimport)`,用于标记DLL导出和导入的代码。导出类通常用于创建可以在多个模块间共享的对象实例,而导出函数则提供服务供其他模块调用。 MFC的DLL机制使得Windows开发人员能更方便地利用DLL的优点,例如代码复用、版本控制和资源优化。理解和掌握MFC的DLL编程技巧对于任何深入开发Windows应用的程序员来说都是必不可少的。
剩余8页未读,继续阅读
- yelong03042015-06-18这个demo很实用,大家可以学习一下
- jnliudan1232015-10-12看看还行,属于基础的
- ipc800w2014-12-04文档内容对于初学者很有用。
- 粉丝: 2
- 资源: 43
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助