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

__declspec(dllexport) 和 __declspec(dllimport)的区别

时间:2018-01-17 00:35:38      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:import   class   选项   技巧   编译   export   define   ifd   efi   

最近看MXNet的源码,其中c_api.h中发现遇到__declspec(dllexport) 和 __declspec(dllimport)。

__declspec(dllexport)用于导出符号,也就是定义该函数的dll;__declspec(dllimport)用于导入,也就是使用该函数。
因为这个头文件既要被定义该函数的dll包含,也要被使用该函数的程序包含,当被前者包含时我们希望使用__declspec(dllexport)定义函数,当被后者包含时我们希望使用dllimport。于是我们使用
#ifdef _EXPORTING
#define CLASS_DECLSPEC __declspec(dllexport)
#else
#define CLASS_DECLSPEC __declspec(dllimport)
#endif
这种技巧,在定义该函数的dll中,其编译选项定义了_EXPORTING而使用该函数的程序则没有定义。 

__declspec(dllexport) 和 __declspec(dllimport)的区别

标签:import   class   选项   技巧   编译   export   define   ifd   efi   

原文地址:https://www.cnblogs.com/Key-Ky/p/8297910.html

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