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

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

2015年8月20日 星期四

BCB 對檔案名與路徑字串的函式

取得執行檔的完整路徑
String name = Application->ExeName;
//C:\\Borland\\CBuilder6\\Projects\\Project1.exe

取出檔案名稱
name = ExtractFileName(name);
// Project1.exe

改變副檔名
name = ChangeFileExt(name,".TXT");
//Project1.TXT

取出路徑(含斜線, 不支援反斜線)
name = ExtractFilePath(Application->ExeName);
//C:\Borland\CBuilder6\Projects\

取出路徑(不含斜線, 不支援反斜線)
name = ExtractFileDir(Application->ExeName);
//C:\Borland\CBuilder6\Projects

取出目錄名稱(在linux永遠是空白)
name = ExtractFileDrive(Application->ExeName);
//C:

取出副檔名
name = ExtractFileExt(Application->ExeName);
//.exe

2015年8月17日 星期一

使用command line 來編譯bcb的專案檔

BCB6 可以使用 BCB.exe -m Project.bpr 來編譯執行檔
不過使用這樣的編譯方式在編譯之前會喚起BCB的IDE介面
如果只是單純想編譯程式可以透過MAKE FILE的方式
在BCB3 與BCB4 的時候.bpr檔就是一個makefile文件
自從BCB5 之後 .bpr檔變成了 xml檔案
如果想要 makefile文件的話
可以透過工具程式 bpr2mak.exe Project.mak Project.bpr
來產生 Project.mak

之後再透過指令 make -f Project.mak
就可以編譯檔案了

2015年4月13日 星期一

BCB6 發生 E2015 Ambiguity between 'PLongint' and 'System::Plongint' 錯誤

參考 http://support.embarcadero.com/article/34594 的作法 將Psock.hpp 中的 typedef int *PLongint;註解掉就好了

BCB6.0 使用indy10

1. 首先使用 Administrator 安裝

2. 移除BCB6原來使用的Indy
2.1 放入安裝光碟
2.2 選擇 Modify 後按 Next
2.3 在 Custom Setup 中 選擇 Program Files/Indy 選 Do not Install
2.4 接著就是下一步到結束

3. 安裝新的 Indy
3.1 先開啟BCB6, 這時會發生連結不到 Indy Lib的訊息, 選Yes
3.2 在 Tools/Environment Options/Library Path 中加入Indy的路徑
3.3 在 Project/Options/Packages 加入 dclIndyCore60.bpl 與 dclIndyProtocols60.bpl
3.4 切換到 Directories/Conditionals TAB 在 Include Path 與 Library Path 加入 Indy的目錄(放到第一個)
3.5 記得左下角的 Default要打勾

關閉後重開如果出現找不到 IndySystem60.bpl的訊息, 先按yes 跳過
之後將IndySystem60.bpl, IndyProtocols60.bpl, IndyCore60.bpl放到c:\windows\system32的目錄下