这篇主要是C#和Halcon的混合编程,在此基础上对按键不同功能的划分,以及图片适应窗口和从本地打开图片。
第一步:导出C#程序,建立项目,并添加此类
2.建立c#工程
在VS中新建一个c#工程,记住框架要选 .NET Framework 4,不要手贱看到还有高版本的4.5就跑去选4.5
在“设计”中完成以下设计:
如何添加按钮,在这里就不多说了。
上面的那个控件是HWindowsControl。
3.工具箱中添加Halcon窗口工具(首次使用需要)
如果是首次使用Halcon和c#混合编程,则需要向VS的工具箱中添加Halcon窗口工具HWindowControl。添加的方法是在“视图”->“工具箱”-> “所有Windows窗体”中右击,选择“选择项”
在弹出窗口中选择“浏览”
在MVTech安装目录下查找:halcon12.0\bin\dotnet20或dotnet35文件夹,我这里是选的dotnet35文件夹,应该是和VS的版本相匹配。
找到文件夹下halcondotnet.dll添加即可。
4.程序改写
接下来就是非常重要的程序改写阶段啦。
首先在程序头添加
using HalconDotNet;
接下来是一个坑,向namespace中添加导出的Halcon c#代码时一定得注意:必须把导出的代码放在控件的代码段后面。否则就会弹个错!!!
喏就是它了,public partial class HDevelopExport:
最后一步就是改写按钮控件的事件响应:
private void Open_Click(object sender, EventArgs e)
{
HDevelopExport HD = new HDevelopExport();
HD.RunHalcon(hWindowControl1.HalconWindow);
}
最后要注意,项目编译的时候,属性选X64 CPU
写在后面的话 ,这里很重要,此乃精要所在
编译程序时,目标平台使用AnyCPU 程序会自动崩溃无提示。单步跟踪会在这里出错:
this.hWindowControl1 = new HalconDotNet.HWindowControl();
原因是调用 halcondotnet.dll与 halcon.dll两Dll出现的错误,因为我没有装Halcon,只用到这两个Dll, 我用的Dll是64位的,所以编译的时候,目标平台使用X64 即可,