Since the HLA Standard Library modules use exception handling statements all over the place, this effectively prevents you from calling HLA Standard Library routines from the code you intend to link with C/C++ 1. This also means that you cannot call library functions that contain such statements. This means that you cannot use the TRY.ENDTRY and RAISE statements in the HLA code you intend to link to a C/C++ program. HLA's exception handling facilities are not directly compatible with C/C++'s exception handling facilities. Fortunately, HLA provides a special interface to code that C/C++ systems generate.īefore we get started discussing how to write HLA modules for your C/C++ programs, you must understand two very important facts: This is unfortunate since HLA uses the Pascal calling conventions. Microsoft, who stopped making Pascal compilers years ago, no longer supports this option. For example, Borland provides a special keyword to let Borland C++ (and C++ Builder) programmers call Pascal code (or, conversely, allow Pascal code to call the C/C++ code). Many vendors have their own extensions to the C/C++ language to aid in the interface to assembly and other languages. Each vendor (Microsoft, Borland, Watcom, GNU, etc.) has their own ideas about how C/C++ should interface to external code. Unlike Delphi, that has only a single vendor, there are many different C/C++ compilers available on the market.