在C ++项目中以这种方式定义类时,它究竟是什么意思:
class THIS_DLL_NAME class_name { ... }
谢谢!
答案 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)。