Halconray
初学者
初学者
  • 最后登录2017-02-14
  • 发帖数11
  • 金币60枚
  • 贡献勋章0枚
  • 社区居民
阅读:781回复:8

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


图片:halconsp1.png







图片:halconsp.png





最后:
这个问题,不知道是不是大家早就知道了,反正困扰我好久了,:)

C++过来的机器视觉新手,望多交流。
xingziying
专家
专家
  • 最后登录2017-02-23
  • 发帖数122
  • 金币2980枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
沙发#
发布于:2016-11-24 09:53
支持一下,有问题有解决方法!
walxhy
专家
专家
  • 最后登录2017-02-23
  • 发帖数161
  • 金币2122枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
板凳#
发布于:2016-11-25 11:05
win10 64OS 上,可不可以x86的VS+64Halcon组合呢

困扰我很久的问题
喜欢我的点个赞吧哈哈~~~ 单春秋对杀阡陌那才是真爱 (。。)
greatlake
初学者
初学者
  • 最后登录2016-12-08
  • 发帖数3
  • 金币22枚
  • 贡献勋章0枚
地板#
发布于:2016-12-07 16:48
将HALCONARCH,改为x86sse2-win32 没成功,可能是我没装X86的缘故,但是,通过卸载Dll引用,添加Dll引用是可以的,谢谢分享。
再羡慕是歌
助理工程师
助理工程师
  • 最后登录2017-02-23
  • 发帖数54
  • 金币212枚
  • 贡献勋章0枚
4楼#
发布于:2016-12-08 08:40
目前X64对接软件版本还是少了。,以后还是统一X86算了。
chenzzg
初学者
初学者
  • 最后登录2017-01-19
  • 发帖数16
  • 金币35枚
  • 贡献勋章0枚
  • 社区居民
5楼#
发布于:2017-01-11 22:12
不错,支持一下,辛苦。
Halconray
初学者
初学者
  • 最后登录2017-02-14
  • 发帖数11
  • 金币60枚
  • 贡献勋章0枚
  • 社区居民
6楼#
发布于:2017-02-03 10:38
再羡慕是歌:目前X64对接软件版本还是少了。,以后还是统一X86算了。回到原帖
Halconray
初学者
初学者
  • 最后登录2017-02-14
  • 发帖数11
  • 金币60枚
  • 贡献勋章0枚
  • 社区居民
7楼#
发布于:2017-02-03 10:41
greatlake:将HALCONARCH,改为x86sse2-win32 没成功,可能是我没装X86的缘故,但是,通过卸载Dll引用,添加Dll引用是可以的,谢谢分享。回到原帖
修改环境变量后要重启VS,可能是没刷新,在你重新添加DLL饮用后刷新了下
yang185829555
初学者
初学者
  • 最后登录2017-02-20
  • 发帖数2
  • 金币18枚
  • 贡献勋章0枚
  • 社区居民
8楼#
发布于:2017-02-09 17:17
支持你 啊  ,  很有用啊  ,谢谢。
游客

返回顶部