Windows平台下的动态链接库(DLL)
动态链接库DLL(Dynamic Link Library)文件又称"应用程序拓展",是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。
先创建一个DLL项目
工程创建出来以后可以看到一些框架代码,函数DllMain是重要的入口函数。
在Windows平台下动态库中封装的可被外界调用的库函数需要使用特定的修饰语法,并且这是和平台相关的(即只在windows平台有效)。这个修饰语法就是:__declspec(dellexport) 。 作用是导出全局函数,在DLL中只有进行了导出的函数才能被外部程序调用。
不修改原有框架,新建一个源文件
完成了需要封装成库的代码的编写工作后,还需要对项目进行配置
- 取消“预编译头文件”
- 改为/MTd编译
3)修改输出的DLL的名称为XXX.dll
生成后就得到了所需要的DLL文件和LIB文件
.lib文件中包含一个列表,表明DLL中含有哪些符号、每个符号对应在DLL中的位置。.dll文件中包含又所有的代码编译后的指令。
在项目中使用DLL
1、先将我们前面生成的相关文件拷贝到工程目录下面
2、在要使用该库的项目中进行相关声明
3、编译、链接、生成、执行
通过使用DLL技术能够对我们的代码进行隐藏的同时又能给用户使用。
DLL的部署位置
DLL文件必须在特定目录下才能被程序所找到,这些特定的路径包括:
- 可执行文件所在目录
- 进程当前目录
- 系统目录
- Windows目录
- 环境变量PATH标明的目录