这个 c++ 类声明是什么意思
What does this c++ class declaration mean?
我在正在阅读的一篇文章中看到这段代码。
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)
。
更多信息可在以下位置找到:
- 使用 __declspec 从 DLL 导出(dllexport)
- 使用 __declspec 导入应用程序(dllimport)
相关文章:
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- "类模板示例<int>;"语句对 C++11 是什么意思?
- 线应该是什么意思
- "CID"在AT+HTTPPARA= "CID" ,1中是什么意思
- 表达式"b=(b-x)&x"是什么意思?
- 这个表达是什么意思?
- 此代码验证公式是什么意思?
- 跟踪日志中的T.11803()是什么意思?
- 这个额外的关键字在这个 c++ 类声明中是什么意思?
- * 和 ** 在 C++ 函数声明中是什么意思?
- _T("xyz")是什么意思?
- #define Dbg(fmt,..) (0) 是什么意思? 警告:表达式无效
- 这行代码到底是什么意思?
- 在命名空间名称之前加上 :: 是什么意思?
- 从字符数组的元素中减去'a'是什么意思
- "friend"关键字在C++中是什么意思?
- 减法中的"0"是什么意思?
- 字符数组前面的加号是什么意思?
- 这里的字符串函数是什么意思