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

完美解决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++过来的机器视觉新手,望多交流。

最新喜欢:

709596534709596... likooooolikooo... tangmtangm
xingziying
专家
专家
  • 最后登录2017-06-10
  • 发帖数126
  • 金币3070枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
沙发#
发布于:2016-11-24 09:53
支持一下,有问题有解决方法!
walxhy
专家
专家
  • 最后登录2017-05-24
  • 发帖数163
  • 金币2455枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
板凳#
发布于:2016-11-25 11:05
win10 64OS 上,可不可以x86的VS+64Halcon组合呢

困扰我很久的问题
喜欢我的点个赞吧哈哈~~~ 单春秋对杀阡陌那才是真爱 (。。)
greatlake
初学者
初学者
  • 最后登录2017-06-29
  • 发帖数4
  • 金币29枚
  • 贡献勋章0枚
地板#
发布于:2016-12-07 16:48
将HALCONARCH,改为x86sse2-win32 没成功,可能是我没装X86的缘故,但是,通过卸载Dll引用,添加Dll引用是可以的,谢谢分享。
再羡慕是歌
助理工程师
助理工程师
  • 最后登录2017-03-23
  • 发帖数56
  • 金币248枚
  • 贡献勋章0枚
4楼#
发布于:2016-12-08 08:40
目前X64对接软件版本还是少了。,以后还是统一X86算了。
chenzzg
初学者
初学者
  • 最后登录2017-04-26
  • 发帖数16
  • 金币38枚
  • 贡献勋章0枚
  • 社区居民
5楼#
发布于:2017-01-11 22:12
不错,支持一下,辛苦。
Halconray
初学者
初学者
  • 最后登录2017-03-02
  • 发帖数11
  • 金币81枚
  • 贡献勋章0枚
  • 社区居民
6楼#
发布于:2017-02-03 10:38
再羡慕是歌:目前X64对接软件版本还是少了。,以后还是统一X86算了。回到原帖
Halconray
初学者
初学者
  • 最后登录2017-03-02
  • 发帖数11
  • 金币81枚
  • 贡献勋章0枚
  • 社区居民
7楼#
发布于:2017-02-03 10:41
greatlake:将HALCONARCH,改为x86sse2-win32 没成功,可能是我没装X86的缘故,但是,通过卸载Dll引用,添加Dll引用是可以的,谢谢分享。回到原帖
修改环境变量后要重启VS,可能是没刷新,在你重新添加DLL饮用后刷新了下
yang185829555
初学者
初学者
  • 最后登录2017-06-29
  • 发帖数5
  • 金币49枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
8楼#
发布于:2017-02-09 17:17
支持你 啊  ,  很有用啊  ,谢谢。
张培_zhangpei
初学者
初学者
  • 最后登录2017-05-26
  • 发帖数12
  • 金币75枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
9楼#
发布于:2017-03-08 13:53
walxhy:win10 64OS 上,可不可以x86的VS+64Halcon组合呢

困扰我很久的问题
回到原帖
遇到了同样的问题,和你的一样,解决了没有?
lianyi1992
初学者
初学者
  • 最后登录2017-06-20
  • 发帖数6
  • 金币16枚
  • 贡献勋章0枚
10楼#
发布于:2017-03-08 16:44
多谢多谢!!!!!!这也是困扰我的一个问题
游客

返回顶部