引用后还是无法使用HDevEngine
时间: 2023-12-07 21:04:40 浏览: 17
如果在引入`HalconDotNet`命名空间之后,仍然无法使用`HDevEngine`类,可能是因为缺少Halcon的相关DLL文件。请确保在引入`HalconDotNet`命名空间之前,已经将Halcon的相关DLL文件添加到你的项目中。
通常情况下,Halcon的DLL文件位于Halcon的安装目录下的`bin`文件夹中。需要将`bin`文件夹中的以下DLL文件添加到你的项目中:
- HalconDotNet.dll
- HOperatorSet.dll
- HDevEngine.dll
- HDevEngined.dll(如果需要支持64位操作系统)
在添加DLL文件之后,需要将它们的“复制到输出目录”属性设置为“始终复制”,以确保它们被正确地复制到输出目录中。
如果你已经添加了这些DLL文件,但仍然无法使用`HDevEngine`类,请确保你的代码和DLL文件的位数(32位或者64位)一致,否则也可能会导致无法使用`HDevEngine`类。
相关问题
C#怎么使用HDevEngine
使用HDevEngine可以在C#程序中嵌入Halcon运行环境,以下是使用HDevEngine的步骤:
1. 引入Halcon库文件:在C#项目中引入Halcon的库文件,如"HalconDotNet.dll"。
2. 创建HDevEngine对象:在C#程序中创建HDevEngine对象,并设置Halcon的运行环境参数。
```csharp
HDevEngine engine = new HDevEngine();
engine.SetGlobalCtrlParam("dev_version", "3.12");
engine.SetGlobalCtrlParam("dev_license_use", "local");
engine.SetGlobalCtrlParam("dev_license_parallelism", "default");
```
3. 编写Halcon程序:在C#程序中编写Halcon代码,如下面的例子:
```csharp
string code = @"
open_window(0, 0, 512, 512, 'black', 'visible', '','');
disp_image('Lena',0);
dev_set_color('red');
draw_circle(256, 256, 100);
";
```
4. 执行Halcon代码:使用HDevEngine的ExecuteString方法执行Halcon代码。
```csharp
engine.ExecuteString(code);
```
5. 显示Halcon窗口:在C#程序中调用Halcon的HSystem.SetWindow方法,显示Halcon绘制的图像。
```csharp
HOperatorSet.SetSystem("window_active", "Lena");
```
以上是使用HDevEngine在C#程序中嵌入Halcon运行环境的步骤,具体使用方法可以参考Halcon的官方文档。
HDevEngine需要怎么使用
HDevEngine是Halcon提供的一个用于执行Halcon程序的引擎,可以用于执行Halcon程序文件(.hdev、.hdvp)或者直接执行Halcon语句。以下是一个简单的示例,演示如何使用HDevEngine执行Halcon程序文件:
```
// 创建HDevEngine对象
HDevEngine hdev = new HDevEngine();
// 设置Halcon程序文件路径
hdev.SetScriptFile("test.hdvp");
// 执行Halcon程序文件
hdev.Execute();
// 释放HDevEngine对象
hdev.Dispose();
```
在执行Halcon程序文件之前,需要通过`SetScriptFile()`方法设置Halcon程序文件的路径。执行Halcon程序文件时,可以使用`Execute()`方法。
如果要执行单个Halcon语句而不是整个程序文件,可以使用`ExecuteScript()`方法。以下是一个示例:
```
// 创建HDevEngine对象
HDevEngine hdev = new HDevEngine();
// 执行Halcon语句
hdev.ExecuteScript("read_image(Image,\"test.png\");");
// 释放HDevEngine对象
hdev.Dispose();
```
在执行Halcon语句之前,需要将Halcon语句作为参数传递给`ExecuteScript()`方法。
请注意,在使用HDevEngine对象时,需要手动释放它,以避免内存泄漏。可以通过调用`Dispose()`方法来释放HDevEngine对象。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)