关于DLL的VC++程序编程方法.pdf

关于DLL的VC++程序编程方法.pdf

ID:52242195

大小:80.03 KB

页数:4页

时间:2020-03-25

关于DLL的VC++程序编程方法.pdf_第1页
关于DLL的VC++程序编程方法.pdf_第2页
关于DLL的VC++程序编程方法.pdf_第3页
关于DLL的VC++程序编程方法.pdf_第4页
资源描述:

《关于DLL的VC++程序编程方法.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第17卷第4期上海电力学院学报Vol.17No.42001年12月 JournalofShanghaiUniversityofElectricPowerDec.2001  文章编号:1006-4729(2001)04-0051-04关于DLL的VC++程序编程方法方 莉, 林中达(东南大学动力工程系,南京210096)摘 要:简要介绍了利用动态链接库(DLL)输出类、函数、变量的各种方法,以及如何简便地将DLL与用户应用程序相链接,并对所讨论的方法,全部配有VC++实例说明.关键词:动态链接库;类;函数;变量;输出;链接中图分类号:

2、TP315文献标识码:A链接的原理和方法进行探讨.引 言1DLL输出及方法动态链接库(DLL)是一种基于Windows的程序模块.它不仅可以包含可执行代码,而且还有数1.1 输出类据,各种资源,因而扩大了库文件的使用范围.在进行大型软件开发时,利用DLL技术将程序分为1.1.1 利用宏AFEXTCLASS输出类一系列的主程序和DLL,可以减少开发的工作1 新建一个工程时,使用MFCAppWizard量(dll)自动创建DLL.AppWizard允许建立两种.由于每个模块减少了,访问的速度将提高.DLL,即扩展DLL与常规DLL.由于

3、扩展DLL支DLL程序本身不能运行,它需要一个入出口持C++接口,能够导出整个类,故在此选择MFC函数,在应用程序使用DLL的内容前,系统先调扩展DLL.用入出口函数完成DLL的初始化和终止工作.此2 在DLL的类说明头文件中,使用宏AFX外,设计的这个DLL对外提供了哪些功能、接口EXTCLASS来导出整个类.如何定义后,DLL内部实现就和其他普通程序设ClassAFXEXTCLASSCMyClass:pub2计没有什么两样.licCObject{⋯}使用DLL的动态链接并不是将库代码拷贝,3 在链接此DLL的应用程序中加入包含输

4、而是在程序中记录了函数的入口点和接口,在程出类说明的头文件.序执行时才将库代码装入内存.不管多少程序使#include“e:\实验\MyClass.h”用DLL,内存中都只有一个DLL的副本,当没有1.1.2 利用关键字declspec(dllexport)输出类程序使用它时,系统就将它移出内存.可见,灵活使用DLL将可实现数据和资源共享,避免重复代1 建立MFC扩展DLL.码造成的磁盘和内存资源浪费.2 在DLL的类说明头文件中加入declspec此外,由于DLL独立于链接它们的应用程(dllexport)关键字.序,调用的地

5、址转换是在加载时解决的.这使得classdecspec(dllexport)CMyClass:publicDLL的故障查找和小的修改比较简单,不必重新CObject{⋯}.编译调用它们的应用程序.3 在链接此DLL的应用程序的头文件中加通过DLL可以输出类、函数、变量.笔者结合入相应的关键字declspec(dllimport)来导入DLL自己在使用DLL的过程中所遇的问题,对如何实的输出类.现上述输出内容以及将DLL与用户应用程序相classdeclspec(dllimport)CMyClass:publicCObject收稿日期

6、:2001-05-16©1995-2006TsinghuaTongfangOpticalDiscCo.,Ltd.Allrightsreserved.52上 海 电 力 学 院 学 报               2001年{⋯}.明的头文件中加入与上述关键字相对应的关键字declaspec(dllimport),从而引入DLL中的输出函1.2 输出函数数.1.2.1利用DLL中的模块定义文件(.def)输Extern“C”declspec(dllimport)double出函数SquareRoot(doubled).1 使用MFCA

7、ppWizard(dll)自动创建DLL,它会创建一个DEF文件的框架并添加到这个工1.3 导出变量程中,由于只需导出函数,故在此选择MFC常规1.3.1利用DEF文件CONSTANT关键字导出变DLL.量2 在DEF文本文件中的EXPORTS语句后,1 建立MFC常规DLL.输出函数名首先出现.下面以一个具体的DLL的2 在DEF文本文件中的WXPORTS导出语DEF文件为例看一看怎样在DEF文件中加入说句后加上输出变量名,为了与输出函数相区别,在明语句.例如一个名为test的DLL中想要输出函变量名后还要加上CONSTANT关键

8、字,表明前面数SquareRoot:的导出名不是函数名,而是一个数据变量.例如一;test.def个名为number的DLL中输出数字number:LIBRARY“test”;number.def:Declaresthemodulep

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。