完美解決HALCON C#編程目標平台沖突問題


完美解決HALCON C#編程目標平台沖突問題

 
 
樓主#
更多 發布於:2016-11-23 10:06
 
 
背景: 
目標機器工控機使用11.0.1 32位Halcon 原因你懂的。開發環境Win10 X64 + VS2015  + Halcon 11.0.3 X64 & X86 


問題1: 
開發機器上開發Halcon程序,目標平台只能使用AnyCPU  或者 X64,使用X86就不行,程序會自動崩潰無提示。單步跟蹤會在這里出錯: 
            this.hWindowControl1 = new HalconDotNet.HWindowControl(); 
更多描述見我以前的一個求助帖子: 
http://www.ihalcon.com/read-6410.html 
C#添加Halcondotnet.DLL目標平台設為X86就出錯 

每次調試都是使用AnyCPU模式,然后,通過了,再換成X86,生成程序放到工控機。這種操作方法看起來沒問題,而某些庫,比如現裝的一個相機庫,只能使用X86模式,導致開發機器上就不能同時調試涉及相機和HALCON的程序。開發庫目標平台沖突,沒辦法啊,每次調試這個的時候先把那個卸載了。卸載Dll引用,添加Dll引用,煩死了。 


問題2: 
如果工控機上使用11.0.1 版本Halcon 安裝的時候勾選了X64 Verson。 C#是不能使用Halcon的,能編譯,不能啟動,程序會自動崩潰無提示。單步跟蹤會在這里出錯: 
            this.hWindowControl1 = new HalconDotNet.HWindowControl(); 




問題分析與解決: 
Halcon版本不對,對於問題1,是使用了X64版本的Halcon,可是電腦上明明X86  X64都裝了,halcondotnet.dll文件也就一個,沒有版本之分。原來環境變量里有個字段HALCONARCH被設為了x64-win64,它表示使用的版本,將其設為x86sse2-win32,就可以使用X86版本halcondotnet.dll。 


Dll版本在這里切換。問題2就迎刃而解,11.0.1X64版本Halcon是不能使用,(you know why),只能使用X86版。然而Halcon在安裝了X64和X86版的時候HALCONARCH默認設為了X64模式,導致不可用,解決這個問題,重裝Halcon,不勾選X64,或者將HALCONARCH,改為x86sse2-win32 


 





 



最后: 
這個問題,不知道是不是大家早就知道了,反正困擾我好久了,:) 

C++過來的機器視覺新手,望多交流。
2

最新喜歡:

likooooolikooo... tangmtangm
 
 

 
xingziying
專家
專家
  • 最后登錄2017-03-30
  • 發帖數124
  • 金幣3023枚
  • 貢獻勛章0枚
  • 社區居民
  • 忠實會員
 
 
沙發#
發布於:2016-11-24 09:53
 
支持一下,有問題有解決方法!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM