Chapter 9. XBinder C Runtime Library

The XBinder C Runtime Library contains low-level functions that are assembled by the XBinder compiler to accomplish the encoding and decoding of XML messages. This library also contains common functions for memory management, stream operations, linked list handling, and character text conversions.

The following libraries make up the XBinder run-time:

There are several variations of the C XML and common run-time library files for Windows. The following table summarizes what options were used to build each of these variations:

Library Files Description
osysrt_a.lib
osysrtxml_a.lib
osysrtdom_a.lib
osysrtexi_a.lib
Static single-threaded libraries. These were built with the –ML option. These are not thread-safe. However, they provide the smallest footprint of the different libraries
osysrtxml.lib DLL library. This is used to link with the osysrtxml.dll dynamic link library. This contains all of the function from all of the static libraries described above.
osysrtmt_a.lib osysrtxmlmt_a.lib osysrtdommt_a.lib osysrteximt_a.lib Static multi-threaded libraries. These libraries were built with the –MT option. They should be used if your application contains threads and you wish to link with the static libraries (note: the DLL’s are also thread-safe).
osysrtmd_a.lib osysrtxmlmd_a.lib osysrtdommd_a.lib osysrteximd_a.lib DLL-ready multi-threaded libraries. These libraries were built with the – MD option. They allow linking additional object modules in with the runtime modules to produce larger DLL’s.

For dynamic linking on UNIX/Linux, a shared object version of each run-time library is included in the lib subdirectory. This file typically has the extension .so (for shared object) or .sl (for shared library). See the documentation for your UNIX compiler to determine how to link using these files (it varies for different types of UNIX systems).

A version of the libraries is available that contains run-time source code making it possible for the enduser to build customized versions that are further optimized or that use other non-standard compiler options.