Date: 2017/9/27
DLL中导出函数的声明有两种方式:一种为在函数声明中加上__declspec(dllexport),这里不再举例说明;另外一种方式是采用模块定义(.def) 文件声明,.def文件为链接器提供了有关被链接程序的导出、属性及其他方面的信息。
.def文件的规则为:
(1)LIBRARY语句说明.def文件相应的DLL;
(2)EXPORTS语句后列出要导出函数的名称。可以在.def文件中的导出函数名后加@n,表示要导出函数的序号为n(在进行函数调用时,这个序号将发挥其作用);
(3).def 文件中的注释由每个注释行开始处的分号 (;) 指定,且注释不能与语句共享一行。
三种导出定义的方法,按照建议的使用顺序依次为:
- 源代码中的 __declspec(dllexport) 关键字
- .def 文件中的 EXPORTS 语句
- LINK 命令中的 /EXPORT 规范
所有这三种方法可以用在同一个程序中。LINK 在生成包含导出的程序时还创建导入库,除非生成中使用了 .exp 文件。
参考:
http://blog.csdn.net/ithzhang/article/details/8208153
http://blog.sina.com.cn/s/blog_78fd98af0101ghno.html
http://blog.csdn.net/u012787710/article/details/48563943