HDevEngine allows developers to execute HDevelop code within their C# or C++ application. To better understand the benefits of using HDevEngine, let’s have a quick look at the “traditional” way of using HALCON.

The traditional way: HDevelop program code is exported and integrated into the application.
A typical workflow looks like this:
- Create the machine vision part of your application in HDevelop.
- Use HDevelop to export it as C++, C, C#, or Visual basic source code.
- Insert this machine vision code into your main application’s source code.
- Finish the development of the main application and compile.
This approach unfortunately has a few drawbacks: If modifications to the application’s machine vision part are necessary, the code needs to be exported again, and the whole main application then needs to be recompiled. This makes maintaining the application inefficient because of the need to switch back and forth between HDevelop and the development environment used for the rest of the application. Additionally, the whole application also needs to be recertified, to, for example, keep a certain security status.
To counter these drawbacks, HDevEngine was developed (the “HDevelop Engine”).

Using HDevEngine to directly load and execute HDevelop programs and procedures from within your C++ or C# application.
HDevEngine acts as an interpreter and lets you directly load and execute HDevelop programs and procedures from within your C++ or C# application. You can call procedures by passing corresponding input parameter values and retrieving output parameter values.
Using HDevEngine for dynamically loading and executing the application’s machine vision code allows you to make changes to the vision part of your applications “on the fly“ – no need to recompile or recertify the whole application. This directly translates into time and cost savings!
- Change requests by the customer can be implemented faster and more cost-effective.
- Automated production lines can be quickly adjusted to handle varying workpieces.
- Inspection units can be quickly equipped with new machine vision code for solving varying inspection tasks.
With HALCON 13, using HDevEngine becomes even more of a no-brainer: code that is being executed by HDevEngine can now be debugged directly within HDevelop.

Working with HDevEngine is now even more convenient: HDevEngine now supports debugging – even remotely!
This enables the developer to inspect call stack and variable values while executing procedures step by step, making error tracking a lot easier.
You can even connect HDevelop to an HDevEngine application running on a different computer for remote debugging. Another cost-saver, since it removes the necessity to send an engineer to the location for on-site debugging.
When debugging a remote machine, all variables can also be stored locally: For example, you can view the current state which causes an error on the remote machine, store/download all related images and other variable values and then continue investigating the issue locally, or provide the data to MVTec for analysis or bug fixing.