首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

用 BCB5 打包程式打包 BCB6 專案

     編輯:關於C++

C++ Builder 6 內建的 InstallShield Express 存在中文支援不佳、功能缺陷等問題,許多開發者傾向繼續使用相對成熟穩定的 BCB5 版打包工具。本文詳細記錄如何修改 BCB5 InstallShield Express 的設定檔(isdepend.ini、swdepend.ini),使其正確識別並打包 BCB6 專案所需的 BPL/DLL 執行檔。

前置條件

  • 已安裝 BCB5 版 InstallShield Express(預設路徑 E:\Program Files\InstallShield\InstallShield Express for C++Builder 5)。
  • 備份原始 isdepend.ini、swdepend.ini。

修改 isdepend.ini

找到 [Options] 區段,將 Option12=BDE Database Component Packages 前加分號停用:

;Option12=BDE Database Component Packages

原因:此選項會導致 Option3=BDE Control Panel File 永遠被勾選,無法取消,干擾 BCB6 專案不需 BDE 的情況。

修改 swdepend.ini(核心)

  1. 全域替換版本號:50 → 60(如 vcl50.bpl → vcl60.bpl、rtl50.bpl → rtl60.bpl 等)。
  2. 更新註冊表路徑:Src=HKEY_LOCAL_MACHINE\SOFTWARE\Borland\C++Builder\5.0\RootDir → 6.0\RootDir。
  3. [VCL WinSys] 區段新增:Uses2=RTL60.BPL。
  4. [InpriseThreadedRuntime] 區段修改:Uses1=CC3245MT.DLL → CC3260MT.DLL。
  5. [VCLDB60 BPL] 區段新增:Uses2=DBRTL60.BPL。
  6. [Use Database Packages Support] 區段調整:
    • 新增 Uses3=ADORTL60.BPL、Uses4=BDERTL60.BPL
    • Uses2=VCLDB50 BPL → Uses2=VCL WinSys
  7. [Use STD Packages Support] 區段新增:Uses2=InpriseThreadedRuntime。
  8. 停用 BDE 相關區段:[Use BDE Database Packages Support] 與 [VCLBDE60.BPL] 所有鍵值前加分號(BCB6 已移除 VCLBDE60.bpl)。

驗證與使用

  1. 啟動 BCB5 InstallShield Express,開啟專案檔(.ise)。
  2. 在「檔案」頁籤確認偵測到的執行檔為 vcl60.bpl、rtl60.bpl 等 BCB6 運行套件。
  3. 正常建置安裝程式,測試安裝於無 BCB6 環境的機器。

原理解析

swdepend.ini 定義了「元件依賴圖」:每個區段代表一個可散發單元,UsesN 指定其相依單元。修改版本號與註冊表路徑,本質上是將掃描目標從 BCB5 安裝目錄重導向至 BCB6 安裝目錄,並調整依賴關係以符合 BCB6 運行時架構(如 CC3260MT.dll 取代 CC3245MT.dll)。

擴充應用

同理可修改支援 BCB7、BCB2007 等後續版本,關鍵在於:

  • 確認目標版本 BPL/DLL 命名規則(vcl<版本>.bpl、rtl<版本>.bpl、cc32<版本>mt.dll)。
  • 查閱目標版本註冊表 RootDir 路徑。
  • 依新版運行時架構調整依賴關係(如新增 DBRTL、ADORTL 等)。

掌握此技巧,即可在新舊版本共存環境中,以單一熟悉的打包工具維護所有版本專案的部署需求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved