要创建DLL,必须至少创建三个文档。
1 .cpp文件用于编写核心代码。
里面包括一个dll入口函数DllMain。形如:
包括需要导出的变量和函数,图中的是add。以及不需要导出的变量和函数。
2 .h文件用于供其他程序调用使用。
最好包括如下内容:
3 .def文件,用于为链接器提供有关被链接程序的导出、属性及其他方面的信息。为了导出所需函数。
如图:
.def文件的规则为:
(1)LIBRARY语句说明.def文件相应的DLL,可以省略;
(2)EXPORTS语句后列出要导出函数的名称。可以在.def文件中的导出函数名后加@n,表示要导出函数的序号为n;
(3).def 文件中的注释由每个注释行开始处的分号 (;) 指定,且注释不能与语句共享一行。
可以看出,DLL中导出函数的声明有两种方式:
一种方式是:在函数声明中加上__declspec(dllexport);
另外一种方式是:采用模块定义(.def)文件声明,(.def)文件为链接器提供了有关被链接程序的导出、属性及其他方面的信息。
这两种方式分别对应上面的2和3,笔者建议这两个文件全部建立。
二编译后生成三个有用的文件:
- 1.dll文件就是动态链接库
- 2.lib文件就是供程序开发用的导入库,它为系统提供了加载这个dll和定位dll中的导出函数所需的信息。
- 3.h文件包含了导出函数的声明
三使用dll有两种途径
1装载期间动态链接。这时候需要用到全部三个有用文件。最好将他们都放入你的工程目录。
在调用时必须要用到两个语句,他们是:
#include “.h”有用文件
#pragma comment(lib, “.lib”有用文件)
之后就可以像使用本地函数一样使用.dll中的导出函数了。请看下面的例子:
2运行期间动态链接。这时候只需要用到.dll文件。你需要记录它的文件目录中的地址。
这时你需要用到三个函数:
用于加载库的:库handle = LoadLibrary("dll文件的目录地址");
用于加载函数:函数指针 = GetProcAddress(库handle, "函数名");
用于释放库的:FreeLibrary(库handle);
在加载函数指针后就可以使用这个函数了。请看下面的例子:
1.文章《〈如何引用dll中的变量〉vs如何引用dll文件…》援引自互联网,为网友投稿收集整理,仅供学习和研究使用,内容仅代表作者本人观点,与本网站无关,侵删请点击页脚联系方式。
2.文章《〈如何引用dll中的变量〉vs如何引用dll文件…》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
相关推荐
- . 现代买票为什么带上携程保险
- . 潮阳怎么去广州南站
- . 湖南马拉河怎么样
- . 烧纸为什么到三岔路口
- . 百色为什么这么热
- . 神州租车怎么样
- . 芜湖方特哪个适合儿童
- . 护肤品保养液是什么类目
- . 早晚的护肤保养有哪些项目
- . 女孩护肤品怎么保养的最好