2016年8月18日 星期四

當程式想要編譯成單一執行檔時需要做以下的設定
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並覆蓋掉舊的
      (舊的記得備份)

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並覆蓋掉舊的
      (舊的記得備份)

2016年5月9日 星期一

eclipse 安裝Android SDK 後出現的錯誤

在eclipse安裝了最新的Android SDK的時候就跳出了這個問題,



解決方法1 就是把叫出 Android SDK Manager 把這兩個package刪了

  • Android Wear ARM EABI v7a System Image
  • Android Wear Intel x86 Atom System Image


解決方法2 就是將發生問題的兩個xml內有 " d:skin " 的那一行刪掉, 不過這個我沒試過

2016年2月4日 星期四

IIS7 與 Tomcat整合(use isapi_redirect.dll)

因為想要在一台電腦上同時執行 ASPX 與 JSP
而只能使用80 PORT,
所以只能透過IIS 來轉發 request到tomcat
使用的Tomcat版本是8.0

方法如下:
1.下載 The Apache Tomcat Connectors  我下載的版本是1.2.40
    可以得到 isapi_redirect.dll , 我是放在 c:\tomcat8\bin\

2.設定connector
   根據官網的文件 isapi_redirect 的設定方式有兩種
     (1) registry setting
          在HKLM\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector\1.0
          新增最少以下資訊
          extension_uri:/jakarta/isapi_redirect.dll  (固定值)
     log_file: c:/tomcat8/logs/isapi_redirect.log
     log_level: info
     worker_file: c:/tomcat8/conf/workers.properties (workers設定檔的位置)
     worker_mount_file: C:/tomcat8/conf/uriworkermap.properties (uri對照的mapping)

  (2)isapi_redirect.properties
     設定同上, 不過我試的結果是沒有用, 所以用第一種方法
     #固定值
     extension_uri=/jakarta/isapi_redirect.dll
     #log檔放的位置可以依日期來當檔名可以參考官網設定
     log_file=c:/tomcat8/logs/isapi_redirect.log
     #log的記錄內容有 debug, info, warn, error, trace
     log_level=info
     #worker設定檔的位置
     worker_file=c:/tomcat8/conf/workers.properties
     #worker uri mapping對照檔的位置
     worker_mount_file=C:/tomcat8/conf/uriworkermap.properties

3.建立workers.properties文件
  官網worker參數設定
  #隨便設定, 但是要跟等等設定的 uriworkermap.properties一致就好
  worker.list=jspWorker
  #可以是ajp13, ajp14, jni, lb 或是 status 
  #不過以下的設定需要跟server.xml的connector的設定一致
  worker.geloinWorker.type=ajp13
  #tomcat server所在的電腦
  worker.geloinWorker.host=localhost

  worker.geloinWorker.port=8009

4.設定uriworkermap.properties
  詳細設定要參考官網的uri設定
  這邊要跟workers.properties的 worker.list設定一致
  /*.jsp=jspWorker
  /test/*=jspWorker

IIS設定
1.先建立一個跟isapi_redirect.properties的 extension_uri一致的虛擬目錄
  設定到isapi_redirect.dll所在位置
2.設定處理常式對應 -> 編輯功能權限 設為執行

3.為網站新增ISAPI篩選器
4.幫SERVER設定ISAPI及CGI限制新增 JAKARTA
5.記得將W3SVC重啟

參考資料:
1. https://tomcat.apache.org/connectors-doc/
2. http://www.cnblogs.com/meizhouxiang/p/3977474.html