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

What does this c++ class declaration mean?

本文关键字:是什么 意思 声明 c++ 这个      更新时间:2023-10-16

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

class EXAMPLEUNMANAGEDDLL_API CUnmanagedTestClass
{
public:
    CUnmanagedTestClass();
    virtual ~CUnmanagedTestClass();
}; 

EXAMPLEUNMANAGEDDLL_API做什么?

提前致谢

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

阅读有关 MSDN 的这篇文章以获取更多信息:在C++类中使用 dllimport 和 dllexport

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

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

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

此类构造在 Windows 中用于控制是在生成 DLL 时使用该类还是用于生成 DLL 的用户。

生成 DLL 时,EXAMPLEUNMANAGEDDLL_API需要扩展到 __declspec(dllexport)

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

更多信息可在以下位置找到:

  1. 使用 __declspec 从 DLL 导出(dllexport)
  2. 使用 __declspec 导入应用程序(dllimport)