摘要: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