The following object files shipped with OpenEdge are required to build an HLC library:
  • prohlcdll.obj\prohlcdll.o—In addition to the entry points for the HLC interface defined in hlc.h, this file holds the following entry points:
    • void *promalloc(size)—Returns the memory allocated to the current ABL session.
    • void profree(void *ret)—Frees the memory allocated to the current ABL session using promalloc().
    • void proSetGlobalStruct(void *ptr)—Saves a pointer to a user-defined global data structure in the context of the current ABL session. The global structure is returned via a call to proGetGlobalStruct*().
    • void *proGetGlobalStruct()—Returns the pointer to the memory saved by the call to proSetGlobalStruct().
  • csmtcrt.o—Contains Progress thread safe implementations of the C run-time library functions which are not thread safe. At run time, all calls from the HLC library to the C run-time library functions are routed to the interposed thread safe functions. This object file is required only on the AIX platform.
  • csmtlibinit.o—Initializes the HLC library with csmtcrt.o. This object file is required only on the AIX platform.