如何从 DLL 导出数据

 我来答
流穿蜂
2017-06-24 · TA获得超过6.9万个赞
知道大有可为答主
回答量:7355
采纳率:66%
帮助的人:3418万
展开全部
1)包含头文件
2)#pragma comment(lib, "xxx.lib")//导入lib

如果仅仅是考虑dll导入导出问题的话,def文件等于_declspec(dllexport)语句。
_declspec(dllexport)语句是告诉编译器,在制作dll文件时,要导出的函数名或变量名,并且在编译器中已经设置要导出lib文件。如果在dll文件中未声明_declspec(dllexport),则即使编译器设置了要导出lib文件,lib文件也不会被创建。因此,要生成lib文件,必须指定_declspec(dllexport)和编译器导出lib文件这两件事情。

当然,如果dll文件未指定_declspec(dllexport),则必须自建def文件,告诉编译器要在lib中生成被导出的函数和/或变量。

def文件能做的事情远远比_declspec(dllexport)指令能做的事情多。

应该知道,被导出的函数,在应用程序中调用时,1可以通过函数名调用,2可以通过序数调用!

2的做法很少见。如果要通过序数来导出dll文件中的函数,则定义def文件时非常方便的。

如果楼主喜欢“魔兽争霸”的话,看下“魔兽”的文件--storm.dll,可以发现里面全是用序数导出函数的,没有函数名。这个在商业软件中很常见,因此2的做法其实是很普遍,也很实用的做法--通过序数导出函数
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式