建立简单DLL流程(一)

动态链接库(DLL)(Dynamic Link Library或者Dynamic-link library),是微软公司在微软视图操作系统中实现共享函数库概念的一种实作方式。这些库函数的扩展名是.DLL、.OCX(包含ActiveX控制的库)或者.DRV(旧式的系统驱动程序)。

所谓的动态链接 ,就是把一些经常会公用的代码(静态链接的OBJ程序库)制作成DLL档,当可执行文件调用到DLL档内的函数时,windows操作系统才会把DLL档加载存储器内,DLL档本身的结构就是可执行文件,当程序需求函数才进行链接。通过动态链接方式,存储器浪费的情形将可大幅降低。

DLL的最初目的是节约应用程序所需的磁盘和内存空间。模块化的另一个好处是插件的通用接口使用。

建立一个简单DLL流程:

一、先建立一个DLL工程

新建一个工程,选择Win32控制台项目(Win32 console Applicatioon),并且在应用程序设置标签上,选择DLL,文件名称practice_dll

建立简单DLL流程(一)_第1张图片

二、声明导出函数

这里通过使用__declspec(dllexport),添加到需要导出的函数前,进行声明;建立一个对应头文件名称(practice_dll.h),并在里面添加 导出函数。

建立简单DLL流程(一)_第2张图片

在对应.cpp文件中添加函数实现方法。在DLLMAIN.cpp文件中实现也可以。

导入函数具体添加

int Add(int x,int y){ return x+y ;};

然后添加.def

建立简单DLL流程(一)_第3张图片

选择.def文件,然后建立和文件相同名称的.def.本身模块定义文件是一个有着.def文件扩展名的文本文件,它被用于导出一个DLL的函数,他有两个必需部分:LIBRARY和EXPORTS。

LIBRARY是一个必须的部分。它告诉连接器(linker)如何命名你的DLL。EXPORTS是另一个必须的部分。这个部分使得该函数可以被其他应用程序访问到并且它创建一个导入库。当你生成这个项目时,不仅是一个.dll文件被创建,而且一个文件扩展名为.lib的导出库也被创建。

如果程序员没有为DLL模块编写一个DLLMain函数,系统会从其他运行库中引入一个不做任何操作的缺省DLLMain函数版本。在一个单线程启动和终止时,DLLMain函数也被调用。F7编译,就可以再目录debug下得到DLL和Lib。

 

你可能感兴趣的:(dll,VC)