If the program has been exported using the option Use Export Template,
the file created by HDevelop contains a subroutine with the corresponding name
for every HDevelop procedure
except the main procedure, which is contained in the subroutine
action().
Otherwise, the file is exported as a standalone application.
Iconic input and output parameters of a procedure are passed as
HObject and out HObject, respectively, while
control input and output parameters are passed as HTuple and out
HTuple, respectively. The subroutine RunHalcon() contains a call to
the subroutine action() and has a parameter Window, which is of
type HTuple. This is the link to the window on the form to which all
output operations are passed. In addition, another subroutine is created with
the name InitHalcon(). This subroutine applies the same initializations
that HDevelop performs.
Most of the variables, iconic as well as control, are declared locally inside the corresponding subroutines. Iconic variables belong to the class HObject and control variables belong to HTuple.
Depending on the program, additional subroutines and variables are declared.
If the program has been exported using the option Use Export Template, the HDevelop operator stop is translated into a subroutine in C# that creates a message box. This message box causes the program to halt until the button is pressed.
If the program has been exported using the option Use HALCON Windows, the operator stop will be ignored as this export is mainly intended to compile and run standalone.
There are only four classes/types that are used: HTuple for control parameters and HObject for iconic data. In addition, there is the class HWindowControl. It is used inside the project for the output window and a variable of class HTuple directs the output to this window. Finally, the class HOperatorSet is used as a container for all HALCON operators. There is no need for other classes as long as the program has the same functionality as in HDevelop. When editing a generated program you are free to use any of the classes of HALCON/.NET to extend the functionality.