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

如何为64位C++Builder构建.dpk包?

解决dcc64构建dpk包时"designide找不到"的问题,生成C++Builder可用的64位库

核心原因

designide是仅存在于32位环境的IDE集成类包,负责组件在IDE中的设计时支持(比如属性编辑器、组件注册),64位平台下没有对应版本,所以必须把它从64位构建的依赖中剥离。

具体解决步骤

  1. 拆分包的运行时与设计时代码

    • 把原dpk中与IDE设计相关的代码(比如组件注册单元、属性编辑器实现)单独拆分出来,只保留运行时核心逻辑在主包中。
    • 最终分成两个包:
      • 运行时包:不含designide依赖,支持32/64位双平台构建
      • 设计时包:仅32位构建,依赖designide,负责IDE中的组件集成
  2. 修改dpk的条件编译配置
    打开目标dpk文件,通过条件编译指令区分32/64位环境:

    requires
      rtl,
      vcl,
      {$IFDEF WIN32} // 仅32位环境依赖designide
        designide,
      {$ENDIF}
      // 其他必要的运行时依赖包;
    
    contains
      UnitRuntime1 in 'UnitRuntime1.pas', // 运行时核心单元
      UnitRuntime2 in 'UnitRuntime2.pas',
      {$IFDEF WIN32} // 仅32位编译时包含设计时单元
        UnitDesignReg in 'UnitDesignReg.pas';
      {$ENDIF}
    
  3. 用dcc64命令行构建64位运行时包

    • 先通过C++Builder自带的bin\rsvars.bat初始化64位编译环境(确保环境变量正确)
    • 执行构建命令:
      dcc64 -B -CC -H YourPackage.dpk
      
      参数说明:
      • -B:强制重新构建所有单元
      • -CC:生成完整的包文件(包含64位.bpl和C++链接用的.lib导入库)
      • -H:自动生成对应的.hpp头文件(供C++Builder调用)
  4. 给C++Builder配置文件

    • 构建完成后,将生成的YourPackage.bpl、YourPackage.lib、YourPackage.hpp及相关单元头文件,放到C++Builder的项目搜索路径中
    • 在C++Builder项目中添加对YourPackage.lib的链接依赖,确保运行时能找到.bpl文件(可放到程序目录或系统路径)

注意事项

  • 如果第三方dpk没有拆分运行时/设计时代码,你需要手动修改剥离设计时逻辑;若无法修改,建议联系第三方提供64位兼容版本
  • 确保所有依赖的其他包都有64位版本,否则会出现新的"找不到包"错误
  • 检查代码中的平台特定逻辑(比如指针操作、WinAPI调用),确保64位环境下的兼容性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 23:54:59