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

如何在Visual Studio中创建含C++20模块的DLL并实现调用?

C++20模块DLL在Visual Studio中的调用配置方案

DLL项目需补充的配置

  • 模块接口必须显式导出:在模块文件开头声明export module test_kit;,同时给需要对外暴露的函数、类加上export修饰符,示例代码:
    export module test_kit;
    export void print_hello() {
        printf("Hello from test_kit module!\n");
    }
    
  • 指定模块接口文件(.ifc)输出路径:打开项目属性 → C/C++ → 输出文件,设置“模块文件(.ifc)”的输出目录(比如$(SolutionDir)ModuleOutput\$(Configuration)\),确保调用项目能访问到该路径。
  • 确认项目生成时会输出.ifc文件:编译DLL项目后,检查指定的输出目录下是否存在test_kit.ifc,这是导入模块的核心文件。

命令行调用项目需补充的配置

  • 添加模块搜索路径:打开项目属性 → C/C++ → 常规,在“附加模块依赖项”中填入DLL项目生成.ifc文件的路径(即上面设置的$(SolutionDir)ModuleOutput\$(Configuration)\)。
  • 保持编译配置一致:确保调用项目的语言标准为/std:c++latest,且关闭预编译头,和DLL项目的配置对齐。
  • 确保链接到DLL导入库:虽然添加项目引用后VS通常会自动处理,但如果链接报错,可手动在链接器 → 输入 → 附加依赖项中添加DLL项目生成的.lib文件路径。
  • 运行时部署DLL:在项目属性 → 生成事件 → 后期生成事件中添加复制命令,将DLL文件复制到调用项目的输出目录,示例:
    copy "$(SolutionDir)x64\$(Configuration)\test_kit.dll" "$(OutDir)"
    

注意事项

  • 严格保持Debug/Release配置一致:两个项目必须使用相同的配置,否则.ifc和.lib文件版本不匹配会导致模块找不到。
  • 模块名称完全匹配:import test_kit;中的名称必须和DLL模块声明的export module test_kit;完全一致,区分大小写。

内容的提问来源于stack exchange,提问作者Rob N

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 06:52:46