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

支持一下,有问题有解决方法!

时间: 2024-10-20 02:10:16

完美解决HALCON C#编程目标平台冲突问题的相关文章

完美解决EditText和ScrollView的滚动冲突(上)

在网上搜了一下EditText和ScrollView的滚动冲突,发现差点儿全部的解决方式都是触摸EditText的时候就将事件交由EditText处理,否则才将事件交由ScrollView处理.这样确实初步攻克了两者之间的滚动冲突,但并非最好的解决方式.比方,EditText本来能够显示6行文本,可是眼下仅仅显示了5行文本,此时我们在EditText区域进行滑动并期望整个页面能够滚动,但因为我们将事件交给了EditText进行处理,所以页面并不能滚动,这种体验是极差的.事实上我们更希望当Edit

Android:完美解决listview的setonitemclicklistener 和 setontouchlistener冲突问题

@Override public boolean onTouch(View v, MotionEvent event) { createVelocityTracker(event); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: xDown = event.getRawX(); break; case MotionEvent.ACTION_MOVE: xMove = event.getRawX(); //活动的距离 int

【转】完美解决Python与anaconda之间的冲突问题

本文转自:https://blog.csdn.net/sinat_41898105/article/details/80660332 anaconda指的是一个开源的Python发行版本,其包含了conda.Python等180多个科学包及其依赖项.因为包含了大量的科学包,Anaconda 的下载文件比较大(约 515 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python).anaconda适合做数据分析,如果使用d

解决distinct与order by 的冲突

sql="select distinct id from test order by otherfield desc" 需要找到不同的id,同时又想让记录按fbsj排序.但是这样一定会出现错误,出现distinct与order by冲突问题.如何来得到完美的解决呢,看下面的方法,依然用一条sql语句 sql="select id from test group by id order by max(<span style="font-family: Arial

完美解决ScrollView嵌套ViewPager滑动失效和无法正常滑动冲突问题

/******************************************************************************* * Copyright 2011, 2012 Chris Banes. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the Li

QT5.7.0在win10下使用visual studio 2015编译(目标平台 xp)

环境:win10+vs2015+QT5.7.0 目标:编译出能在windows xp上运行的QT 通过baidu和bing找不出来的结果没有一个能成功运行,大部分都能编译成功,并完美解决“exe不是有效的win32程序”,但是程序依旧没法正常显示窗口. 此时会有一个crash,具体位置是qwindows.dll,但是使用depends查看也没看出来qwindows.dll有问题,有些人会遇到qwindows.dll依赖的 kernel32.dll在xp下没有对应接口,具体接口不记得了,最后看到是

驱动篇-字符驱动入门(完美解决cat echo 字符设备乱码的问题)(一)

闲来无事,整理一下驱动入门知识! 大部分与网上整理的差不多,我主要想说的有两个特别的地方,刚入门的人看别人整理的肯定都不知道怎么测试.或者测试结果不像他们所写的那样! 第一点就是用mknod创建的设备名,设备号不能随便写,必须你所写的源文件命名的一致. 比如你在c文件中定义 #define DEV_NAME "chardev" 那么设备名就是chardev 设备号可以通过 cat /proc/devices |grep chardev 得到主设备号. [email protected]

C# Halcon混合编程中遇到的问题(一)

目标平台 安装64位的halcon的情况下,目标平台必须使用x64而不能使用x86 目标框架 不能使用.Net Framework Client版本,有一些必须的程序集会缺失,测试使用.Net Framework 4.0能够正常. HObject 和 C#中的对象的互相转换问题. 在混合编程中,这个应该是一个大问题,我之前之所以一直没有意识到这个问题,是因为虽然说我在做混合编程,但是实际上我只是在C#的环境中用一些halcon中的算子玩了一下, 在wpf中的图像显示使用的也是halcon提供的控

完美解决全面屏蔽Google教程(终结者)

最近谷歌的IP被大范围的禁用了.身处一个连谷歌都用不了的过度的程序员,深感命运多舛.幸好,魔高一尺,道高一丈.下面是几种可以使用谷歌的方法. 方法一 1)在chrome浏览器中输入:chrome://flags/ 2)如下图,开启实验性 QUIC 协议和经由实验性 QUIC 协议发出的 HTTPS 请求两个选项重启浏览器,大功告成. 方法二 此次屏蔽的方法主要屏蔽Google部分IP地址的443端口,包括google.com.hk,accounts.google.com的部分IP的443端口被封