顯示具有 Embarcadero CBuilder XE10 Seattle 標籤的文章。 顯示所有文章
顯示具有 Embarcadero CBuilder XE10 Seattle 標籤的文章。 顯示所有文章

2016年8月18日 星期四

C++ Builder 產生單一執行檔的方法

當程式想要編譯成單一執行檔時需要做以下的設定
1. 將設定裡面 Linker 中的 "Dynamic RTL" 關掉
2. 將設定裡面 Packages 中的 "Link with runtime packages"關掉

但是在 XE10 這樣子是不夠的,
因為這樣做了之後執行程式還是會跳出需要 "BORLNDMM.DLL" 的訊息

有幾個處理辦法

1. 升級成 update1
2. 將設定中的 Use "classic" Borland compiler 關掉
3. 重新產生一個 "memmgr.lib"

第一個辦法因為還要升級費所以不可行..  HotFix也沒出就出Update檔

可以還要買授權, 越來越覺得不該使用Embarcadero了

第二個辦法是關掉後卻會產生其他的 Error, 暫時不想解決這些問題, 所以也不管他


第三個辦法的作法如下

  1. 使用impdef 將 borlndmm.dll 的定義檔匯出成memmgr.def
        impdef memmgr.def borlndmm.dll
  2. 使用編輯軟體編輯memmgr.def
  3. 將以下幾行用分號註解掉
;    __dbk_fcall_wrapper            @2   ; __dbk_fcall_wrapper

;    dbkFCallWrapperAddr            @1   ; dbkFCallWrapperAddr

  4. 使用implib 將 memmgr.def 產生成 memmgr.lib並覆蓋掉舊的
      (舊的記得備份)

2015年9月30日 星期三

更新工具到C++Builder10 Seattle

最近將開發工具更新到C++Builder Seattle, 原來現在已經不使用make指令來編譯專案
而是改使用微軟提供的MSBuild指令
大致上的作法是先使用 RAD Studio Command Prompt 來使用相關的command line 環境
然後使用 MSBuild XXX.cbproj 就可以使用command line來編譯程式

可以參考以下的資料
MSBuild Overview
Building a Project Using an MSBuild Command
http://ithelp.ithome.com.tw/question/10107277