Same runtime routines for version independence

If your application was compiled with a version of Microsoft™ Visual C++ earlier than 4.x, you must export your C runtime library to the ESQL client-interface DLL (isqlt09a.dll). The ESQL client-interface DLL uses your runtime routines to make sure all the pieces of your application are compiled with the same runtime version. Any application that is linked to your application and calls library routines or SQL statements must also use your C runtime library.

To export a C runtime library, include the following line in your code before the first call to the library routine or SQL statement:
#include "infxcexp.c";

The infxcexp.c file contains the C code to export the addresses of all C runtime routines that the ESQL client-interface DLL uses. This file is in the %ONEDB_HOME%\incl\esql directory, which the esql command processor automatically searches when it compiles a program. If you do not use the esql command processor, add the %ONEDB_HOME%\incl\esql directory to the compiler search path before you compile.

You must include the infxcexp.c file only once, in the main() routine (once per process), before the first library call or SQL statement in the program. The code in this file exports your runtime library to the ESQL runtime DLL (isqlt09a.dll) so that they use the same C runtime code. Exporting your runtime routines enables the ESQL runtime routines to allocate memory (malloc()), return the pointer to a C program, and let the program free the memory (free()). It also enables a C program to open a file and to pass the handle (or file pointer) to the ESQL runtime routines for read/write access.