首页 > 代码库 > 完美解决HALCON C#编程目标平台冲突问题

完美解决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

最新喜欢:

技术分享likooo...技术分享tangm
 
 
回复

 
技术分享
xingziying
专家
技术分享
  • 最后登录2017-03-30
  • 发帖数124
  • 金币3023枚
  • 贡献勋章0枚
加关注 写私信
  • 技术分享
  • 技术分享
 
 
沙发#
发布于:2016-11-24 09:53
 
支持一下,有问题有解决方法!技术分享

完美解决HALCON C#编程目标平台冲突问题