C ++ - 使用DLL语法的类定义

时间:2012-02-07 08:47:23

标签: c++ dll

在C ++项目中以这种方式定义类时,它究竟是什么意思:

class THIS_DLL_NAME class_name { ... }

谢谢!

1 个答案:

答案 0 :(得分:0)

正如Basile和Hans在上面的评论中所说,THIS_DLL_NAME将是一个有条件扩展的宏,具体取决于您是构建库本身,还是仅使用该库的代码。

(顺便说一下,由于DLL的术语,我假设你在这里使用Windows。)

THIS_DLL_NAME可以扩展为__declspec(dllexport)__declspec(dllimport)。当头文件包含在您正在编译成THIS_DLL.dll的.cpp文件中时,编译器需要查看__declspec(dllexport)以生成正确的入口点以从DLL导出它们。

当您的类标头包含在使用THIS_DLL.dll的代码中时,编译器需要查看__declspec(dllimport)以生成正确的代码以导入符号(并在运行时解析它)。

您可以在本文中直接阅读Microsoft的更多详细信息 - Importing and Exporting (MSDN)