Where there is a dream ,there is hope

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  64 Posts :: 0 Stories :: 8 Comments :: 0 Trackbacks

常用链接

留言簿(1)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

先看一段宏
#ifdef HSCRIPTDEBUG_EXPORTS
    
#define HSCRIPTDEBUG_API __declspec(dllexport)
#else
    
#define HSCRIPTDEBUG_API __declspec(dllimport)
#endif
 class HSCRIPTDEBUG_API ScriptDebug
 
{
 
public:

   }
;
__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(dllimpot)如果要是类中有静态变量的话,是必须有这个的。


posted on 2010-11-17 15:38 IT菜鸟 阅读(284) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理