The OpenEdge HLC Interface provides a way to call C language functions from within OpenEdge applications. You can use OpenEdge HLC to add portable custom features to OpenEdge. For example, you can link in C functions that do the following:
Add support for trigonometric and other special numeric functions to OpenEdge
Allow OpenEdge to access and control multimedia devices, such as video equipment
Allow OpenEdge to directly access third-party proprietary data files, such as spreadsheet files
If you intend to port your extensions to other environments, use HLC. If you intend to build extensions for use with Windows only, use dynamic link libraries (DLL). If you intend to build extensions for use on UNIX platforms, use UNIX shared objects.
You can use shared libraries or DLLs with your OpenEdge Windows applications to call routines from an ABL procedure. An application links to these routines at run time rather than at build time, and shares the code with other applications. Any enhancement to a shared library or DLL immediately becomes available to your application without rebuilding.
For more information on using UNIX shared libraries or Windows DLLs with OpenEdge, see SharedLibrary and DLL Support. See your Windows SDK documentation for details on building DLLs.
The HLC library functions provide an interface between C functions and ABL. From your C function, you can call HLC library functions that perform the following tasks:
Read data from and write data to ABL shared or global variables
Read data from and write data to ABL shared buffers