这个c ++类声明是什么意思?

时间:2016-01-27 22:02:22

标签: c++

我在一篇正在阅读的文章中看到了这段代码。

g2d.drawString()

EXAMPLEUNMANAGEDDLL_API做了什么?

提前致谢

2 个答案:

答案 0 :(得分:3)

这是为了将类的函数导出或导入DLL。

有关其他信息,请阅读MSDN上的这篇文章:Using dllimport and dllexport in C++ Classes

通常的做法是在类的头文件中使用条件编译,以便可以使用相同的头来生成DLL或使用DLL:

#ifdef EXAMPLEUNMANAGEDDLL_EXPORTS 
    #define EXAMPLEUNMANAGEDDLL_API __declspec(dllexport) 
#else 
    #define EXAMPLEUNMANAGEDDLL_API __declspec(dllimport) 
#endif 

在此示例中,库的代码或构建脚本将定义符号EXAMPLEUNMANAGEDDLL_EXPORTS

答案 1 :(得分:1)

这些构造在Windows中用于控制在构建DLL时是否正在使用该类,或者它是用于构建DLL的用户。

构建DLL时,EXAMPLEUNMANAGEDDLL_API需要扩展为__declspec(dllexport)

在建立DLL的用户时,EXAMPLEUNMANAGEDDLL_API需要扩展为__declspec(dllimport)

更多信息可在以下网址找到:

  1. Exporting from a DLL Using __declspec(dllexport)
  2. Importing into an Application Using __declspec(dllimport)