HALCON 10在Win7 64bit下,編譯及執行32bit程式的問題。

  • 6567
  • 0

摘要:HALCON 10在Win7 64bit下,編譯及執行32bit程式的問題。

我的開發環境:Win7 64 Bit, VS2010 C#

編譯目標平台:x86

安裝HALCON 10.0.1 x64-win64及x86sse2-win32

使用Halcon時,若OS是64位元但程式是編譯成32位元程式,則要修改控制台\系統及安全性\系統\進階->環境變數->系統變數

變數HALCONARCH 值x86sse2-win32 ,相對的;若要執行64位元程式,則值要改成 x64-win64 不然Halcon會不知道該載入什麼版本的Dll。

若原本是x64-win64,利用這段程式碼變更後,第2次執行才會正常。   

若有變更環境變數,則Visual Studio要重開才行。如此Visual Studio才會更新環境變數,在VS內執行Debug才不會出現BadImage的例外。

    string strValue = Environment.GetEnvironmentVariable("HALCONARCH", EnvironmentVariableTarget.Machine);
    if (Environment.Is64BitProcess)
    {
      if(strValue.ToLower().Equals("x64-win64", StringComparison.CurrentCultureIgnoreCase) == false)
        Environment.SetEnvironmentVariable("HALCONARCH", "x64-win64", EnvironmentVariableTarget.Machine);
    }
    else
    {
      if (strValue.ToLower().Equals("x86sse2-win32", StringComparison.CurrentCultureIgnoreCase) == false)
        Environment.SetEnvironmentVariable("HALCONARCH", "x86sse2-win32", EnvironmentVariableTarget.Machine);
    }

============ 以下是簽名檔 ============

一個小小螺絲釘。

第一次建立Blog,希望以後能慢慢充實它。

Howard