【问题标题】:C++ - Class definition with syntax using DLLC++ - 使用 DLL 语法的类定义
【发布时间】:2012-02-07 08:47:22
【问题描述】:

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

类 THIS_DLL_NAME 类名{ ... }

谢谢!

【问题讨论】:

  • 很可能,THIS_DLL_NAME 是一些宏。检查头文件是什么...
  • 唯一真正适合的就是 __declspec(dllexport)
  • 导出类非常脆弱。

标签: c++ dll


【解决方案1】:

正如 Basile 和 Hans 在上面的 cmets 中所说,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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-08
    • 2010-09-23
    • 1970-01-01
    • 2022-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多