You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++中嵌套类是否需要添加__declspec(dllexport)导出宏MY_API?

结论

不需要单独给嵌套类B添加MY_API导出宏,MSVC编译器会自动对外层导出类的所有公共嵌套类完成导出/导入处理。

具体说明

  • 当你为外层类A标记MY_API后,编译器会自动将类A的所有公开成员、包括内部定义的公共嵌套类B一同纳入导出/导入范围,正常场景下完全可以满足使用需求。
  • 你可以通过dumpbin /exports 你的DLL文件路径命令验证编译产物,能直接找到类B的成员函数other_method()对应的导出符号,无需额外加标记。
  • 仅有一种例外场景需要显式给B加MY_API:如果你的业务需要在DLL外部,不依赖类A的实例直接独立使用A::B类型,且实际调用时出现找不到B相关符号的链接错误,才需要手动给B也添加导出标记,写法参考如下:
class MY_API A
{
public:
    void some_method();

    class MY_API B
    {
    public:
        void other_method();
    };
};

内容的提问来源于stack exchange,提问作者kuga。

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 16:36:03