Geosoft GX Developer 8.5

C/C++

The GX API can be accessed from the C++ language from both 32-Bit and 64-Bit programs.

The 32-bit API supports in-process, shared 32-bit memory with Geosoft.

The 64-bit API provides a full separate 64-bit memory space to your application.


 

Installed Files

The GX Developer installation contains all the following files for the C and C++ language:

LIB Files

The library files included with GX Developer are produced by Microsoft Visual Studio and are intended to be used with that environment. Other compilers may or may not use the same format. Microsoft's format is known as COFF format, an older specification known as OMF format is still used by compilers created by Embarcadero (some versions), Digital Mars & some Fortran companies. If your compiler toolchain is windows based they will probably include a tool to convert from COFF if necessary. 

 

cpp\lib\geogx.lib

This is the main library file that contains all functions in the GX Developer .  This library files should be included in your list of link libraries.

cpp\lib\geogx_u.lib

Unicode (UTF-16) version of geogx.lib library

cpp\lib\geogx_utf8.lib

UTF-8 version of geogx.lib library

cpp\lib\geodist.lib

This library is required for external applications. It provides the very small set of methods in the External API.

cpp\lib\geogxdbus.lib

This library is required for external 64-bit C++ applications. It provides the very small set of methods in the External API.

C Header Files

 

cpp\include\gx_lib.h

C header file for all GX functions in the current release.  This header file is only for the purpose of providing prototypes to C compilers. The original GXH files (gxdev\gxh\*.gxh) should be referred to for information on actual function usage.  Note that there are both standard calling convention (GX_STANDARD_FUNC) and C calling convention (GX_WRAPPER_FUNC) wrappers for every function.  C programmers should use the GX_WRAPPER_FUNC functions. 

cpp\include\gx_define.hdefine statements for all defined constants in the GX Developer GXH files.  These are for use in your programs, but the original GXH files should be used to obtain information on usage.  If the constant definitions conflict with definitions used in your programs you should not include this file and instead use the explicit form of the constants. 
cpp\include\gx_extern.hC header file includes functions to create and destroy the GX Object Pointer, and display or retrieve error message.  These functions are required by stand-alone programs. 

C Examples

 

cpp\examples\c\gridcopyConsole program to copy/convert grids using IMG class interface.
cpp\examples\c\chanaddConsole program to add a value to a database channel.
cpp\examples\c\chanstdIdentical to chanadd but uses the “stdcall” function interface.
cpp\examples\c\callfuncA sample DLL that is called from a GX running under Oasis montaj.
cpp\examples\c\licensecheckConsole program to detect if a license is present. Works in conjunction with Oasis montaj .
cpp\examples\c\OMScriptGUI program that can execute GS Scripts and GX’s in GUI mode.

 

C++ Header Files

 

cpp\include\gxcpp_geogx.h

C++ header file for all 32-bit GX functions in the current release. This header file is only for the purpose of providing implementation of class-wrappers to C++ compilers.

cpp\include\gxcpp_dbus.hC++ header file for all 64-bit GX functions in the current release. This header file is only for the purpose of providing implementation of class-wrappers to C++ compilers.

 

C++ Examples

 

cpp\examples\cpp\gridcopy

Console program to copy/modify grids using GXIMG class interface, this example also shows how to get the actual grid data.

cpp\examples\cpp\chanadd

Console program to work with database channels, this example also shows how to get the actual data from a channel.

cpp\examples\cpp\gridstatConsole program to get statistics for a grid, this example also shows how to get the actual grid data

 

Development Requirements

To use the C++ API you will need to download and install the following 3rd party libraries:

Boost 1.57

Glib 2.34.3 (32-Bit)

Glib 2.34.3 (64-Bit)

Your project would need to include paths for boost, GLIB and the GX API. Your linker would also need to link against the following libraries:

  • glib-2.0.lib
  • gio-2.0.lib
  • gobject-2.0.lib
  • geogxdbus.lib

 

 

 

Geosoft GX Developer 8.5