码迷,mamicode.com
首页 > 其他好文 > 详细

_declspec(dllexport)和.def(转)

时间:2019-10-02 17:08:06      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:dll   strong   动态库   函数名   windows   不同   ++   文件   color   

节选自:windows下编译和使用动态库dll http://blog.eonew.cn/archives/865

Microsoft 在 Visual C++ 的 16 位编译器版本中引入了 __export,使编译器得以自动生成导出名并将它们放到一个 .lib 文件中。 然后,此 .lib 文件就可以像静态 .lib 那样用于与 DLL 链接。

在更新的编译器版本中,可以使用 declspec(dllexport) 关键字从 DLL 导出数据、函数、类或类成员函数。 declspec(dllexport) 会将导出指令添加到对象文件中,因此您不需要使用 .def 文件

当尝试导出 C++ 修饰函数名时,这种便利最明显。 由于对名称修饰没有标准规范,因此导出函数的名称在不同的编译器版本中可能有所变化。 如果使用 __declspec(dllexport),仅当解决任何命名约定更改时才必须重新编译 DLL 和依赖 .exe 文件。

许多导出指令(如序号、NONAME 和 PRIVATE)只能在 .def 文件中创建,并且必须使用 .def 文件来指定这些特性。 不过,在 .def 文件的基础上另外使用 __declspec(dllexport) 不会导致生成错误。

_declspec(dllexport)和.def(转)

标签:dll   strong   动态库   函数名   windows   不同   ++   文件   color   

原文地址:https://www.cnblogs.com/Stephen-Qin/p/11617554.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!