ImeLib v0.3 已發布

ImeLib v0.3 已發布至 CodePlex 網站,這次的主要變動如下:
  • 增加對 64 位元 Windows 作業系統的支援。(v0.2 無法在 64 位元作業系統上正常執行)
  • 增加 Phantom 建置腳本。
  • 增加 ASP.NET 範例程式:ImeLibDemoWeb。
這次發布了兩個下載包:
  • ImeLib-bin-v0.3.zip :只包含可執行檔(DLL、範例程式的執行檔)。
  • ImeLib-src-v0.3.zip :包含完整的原始碼。
需特別注意的是,ImeLib-bin-v0.3.zip 裡面有兩個資料夾,分別是 x86 和 x64,各代表供 32 位元和 64 位元作業系統使用的檔案。如果程式要在 64 位元的 Windows 作業系統上執行,卻使用了 32 位元的版本,程式執行時就會出現「Monoruby position array is NULL!」或「數學運算溢位」的錯誤。

如果要在 ASP.NET 應用程式中使用 ImeLib,則必須注意部署時的 IIS 設定:應用程式所屬之 application pool 的身分識別不可用預設的 ApplicationPoolIdentity 或 NETWORK SERVICE,而必須使用更高權限的帳戶(例如 LocalSystem),否則會出現錯誤:
發生未處理的例外狀況,處理序已終止。
Application ID: /LM/W3SVC/3/ROOT/ImeLibDemoWeb
Process ID: 5480
Exception: System.Runtime.InteropServices.COMException
Message: 錯誤 HRESULT E_FAIL 已經從呼叫傳回至 COM 元件。
StackTrace:    於 ImeLib.WinApi.MsIme.IFELanguage.Open()
   於 ImeLib.MsImeFacade.OpenIFELanguage()
   於 ImeLib.MsImeFacade..ctor(ImeClass imeClass)
   於 _Default.GetBopomofo(Object o) 於 d:\2\x64\ImeLibDemoWeb\Default.aspx.cs: 行 35
   於 System.Threading.ExecutionContext.runTryCode(Object userData)
   於 System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
   於 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   於 System.Threading.ThreadHelper.ThreadStart(Object obj)

Copyright © 2012. Huan-Lin 學習筆記 - All Rights Reserved
Powered by Blogger
Template Design by Cool Blogger Tutorials
Published by Templates Doctor