如何在C#中调用Halcon导出的代码

标签:
halcon机器视觉c语言it |
分类: G.工业技术 |
首先,我在从Halcon中导出C#代码时,外部函数,我没有导出,因为它所引用的外部函数挺多了。图中没有勾选东西。(不知道那些有什么用,知道的请指导下)
http://www.halconbbs.com/attachment/Fid_16/16_617_fc3bb08bf70fe01.png?46
然后建立C#工程,我在这里提醒大家的是,在建立的时候,目标框架是.NET Framework
4,但是建立完成后,在解决方案资源管理器空白处右击,选中属性时,目标框架显示的却是.NET Framework 4
Client
Profile,因此我们要在下拉框中,改为.NET Framework 4,不然在执行时会报错。(这个我也不太清楚原因)
http://www.halconbbs.com/attachment/thumb/Fid_16/16_617_634a2fed533dabe.png?117
http://www.halconbbs.com/attachment/thumb/Fid_16/16_617_c5e4cae0f814328.png?50
建立完成,引用“halcondotnet” ,然后添加一个button按钮,和一个HWinddow
Control控件。至于如何添加引用和如何添加“HWinddow Control控件”。详见xiong023xiao发的帖子http://www.halconbbs.com/read.php?tid-178.html,虽然他最后写的那部分我没看懂,自己问人才搞定的。
打开导出的代码,发现,内容不多,就一个HDevelop Exprot类,类中就三个函数,以后我们只要调用公共函数public void RunHalcon(HTuple Window)就可以。复制这些代码。
http://www.halconbbs.com/attachment/thumb/Fid_16/16_617_8508db6b6debf38.png?24
双击button控件,打开后台代码,将复制的那个HDevelop Exprot类粘贴到 public partial class
Form1 : Form里面,不可以放在private void button1_Click(object sender,
EventArgs e)这个函数里
http://www.halconbbs.com/attachment/Fid_16/16_617_2e1a0f4297f30ed.png?6
好了,下面我们要做的就是在private void button1_Click(object sender, EventArgs e)这个事件中调用导出的函数,我们知道,导出的是个类,因此,要先产生一个类的实体,然后,调用实体中RunHalcon这个函数
private void button1_Click(object sender, EventArgs e)
{
HDevelopExport HD = new HDevelopExport();
HD.RunHalcon(hWindowControl1.HalconWindow);
}
一切搞定,程序成功执行!
值得纪念的处子贴。真诚希望和大家交流!
http://www.halconbbs.com/attachment/Fid_16/16_617_fc3bb08bf70fe01.png?46
Profile,因此我们要在下拉框中,改为.NET Framework 4,不然在执行时会报错。(这个我也不太清楚原因)
http://www.halconbbs.com/attachment/thumb/Fid_16/16_617_634a2fed533dabe.png?117
打开导出的代码,发现,内容不多,就一个HDevelop Exprot类,类中就三个函数,以后我们只要调用公共函数public void RunHalcon(HTuple Window)就可以。复制这些代码。
http://www.halconbbs.com/attachment/thumb/Fid_16/16_617_8508db6b6debf38.png?24
http://www.halconbbs.com/attachment/Fid_16/16_617_2e1a0f4297f30ed.png?6
好了,下面我们要做的就是在private void button1_Click(object sender, EventArgs e)这个事件中调用导出的函数,我们知道,导出的是个类,因此,要先产生一个类的实体,然后,调用实体中RunHalcon这个函数
private void button1_Click(object sender, EventArgs e)
{
HDevelopExport HD = new HDevelopExport();
HD.RunHalcon(hWindowControl1.HalconWindow);
}
一切搞定,程序成功执行!
最后,贴上程序执行的结果。
http://www.halconbbs.com/attachment/Fid_16/16_617_214049e5419522f.png?87
值得纪念的处子贴。真诚希望和大家交流!
有几点一起讨论的东西:
01.从Halcon中导出C#代码时的函数属性(楼主的第一张图),希望有高手解析一下;
02.引用“halcondotnet” 和如何添加引用和如何添加“HWinddow Control控件”在我的一个贴里讲到(附图)http://www.halconbbs.com/read.php?tid-309.html
03.楼主的例子中如果遇到了一些halcon的外部函数,那么不导出来的话,如何引用呢?
01.从Halcon中导出C#代码时的函数属性(楼主的第一张图),希望有高手解析一下;
02.引用“halcondotnet” 和如何添加引用和如何添加“HWinddow Control控件”在我的一个贴里讲到(附图)http://www.halconbbs.com/read.php?tid-309.html
03.楼主的例子中如果遇到了一些halcon的外部函数,那么不导出来的话,如何引用呢?