Supported Libraries

Spectrum™ Technology Platform provides an ASCII and Unicode version C API, while the Unicode version remains as compatible as possible with the original ASCII-version API design. Spectrum™ Technology Platform applies International Components for Unicode (ICU) in the API to support the Unicode feature. ICU is a mature, widely used set of C/C++ libraries for Unicode support and is developed by IBM.

The Unicode standard defines a default encoding based on 16-bit code units. This is supported in ICU by the definition of the UChar to be an unsigned 16-bit integer type(unsigned short *). This is the base type for character arrays for strings in ICU. Spectrum™ Technology Platform uses UChar as the Unicode string representation in our C API.

Note: Not all services support the full Unicode character set. For example, the ValidateAddress service supports the ISO 8859-1 character set for US inputs and International inputs and outputs and the CP 850 character set for Canadian inputs and outputs. However, the Unicode libraries should be used whenever your input data may contain any non-ASCII character, even if the underlying service does not support the full Unicode character set.

For detailed information about UChar, please refer to the following two sites:

  • icu.sourceforge.net/userguide/
  • www-306.ibm.com/software/globalization/icu/index.jsp

Windows

Each API configuration produces library files with a common base name (g1client) but with a unique suffix and possibly prefix ("lib" in the case of static libraries). The library suffixes work like this:

<lib>g1client<S><U><D>.<lib|dll>

  • lib—indicates a static library.
  • dll—indicates a dynamic (shared) library.
  • S—indicates a single-threaded build. If this is absent it indicates a multi-threaded build.
  • U—indicates a UNICODE version build. If this is absent it indicates an ASCII build.
  • D—indicates a debug build. If this suffix is absent it indicates an optimized release build.

To enable the UNICODE version, the LIB_UNICODE macro definition must be in your project.

To use the static C/C++ API library UNICODE version, you need to define U_STATIC_IMPLEMENTATION in your project.

To use the dynamic version, you need to define G1CLIENT_DLL in your project.

We also provide a file called "auto_link.h" in the header file directory and it automatically links to all the corresponding libraries according to the project settings.

To call 64-bit libraries in Windows, you need to define VER_64 in your project.

Static Library
Note: The names provided in this section are for 32-bit libraries. For 64-bit libraries, replace "32" with "64" in the library name.

Single Threaded/Release

 

ASCII

Unicode

g1

libg1client_S.lib

libg1client_SU.lib

openssl

otlibeay32.lib otlibssl32.lib

otlibeay32.lib otlibssl32.lib

opentop

opentop.lib

opentopw.lib

icu

 

libicuuc.lib libicudt.lib libicuin.lib libicuio.lib

Poco

PocoXML32.lib

PocoXML32w.lib

Single Threaded/Debug

 

ASCII

Unicode

g1

libg1client_SD.lib

libg1client_SUD.lib

openssl

otlibeay32d.lib otlibssl32d.lib

otlibeay32d.lib otlibssl32d.lib

opentop

opentopd.lib

opentopwd.lib

icu

 

libicuucd.lib libicudtd.lib libicuind.lib libicuiod.lib

Poco

PocoXML32d.lib

PocoXML32wd.lib

Multi/Release (using Multi-Threaded CRT)

 

ASCII

Unicode

g1

libg1client.lib

libg1client_U.lib

openssl

otlibeay32mt.lib otlibssl32mt.lib

otlibeay32mt.lib otlibssl32mt.lib

opentop

opentopmt.lib

opentopmtw.lib

icu

 

libicuucmt.lib libicudtmt.lib libicuinmt.lib libicuiomt.lib

Poco

PocoXMLmt32.lib

PocoXML32mtw.lib

Multi/Debug (using Multi-Threaded CRT)

 

ASCII

Unicode

g1

libg1client_D.lib

libg1client_UD.lib

openssl

otlibeay32mtd.lib otlibssl32mtd.lib

otlibeay32mtd.lib otlibssl32mtd.lib

opentop

opentopmtd.lib

opentopmtwd.lib

icu

 

libicuucmtd.lib libicudtmtd.lib libicuinmtd.lib libicuiomtd.lib

Poco

PocoXMLmt32d.lib

PocoXML32mtwd.lib

Dynamic Library
Note: The names provided in this section are for 32-bit libraries. For 64-bit libraries, replace "32" with "64" in the library name.

Multi/Release (using Multi-Threaded CRT)

 

ASCII

Unicode

g1

g1client.dll

g1client_U.dll

openssl

otlibeay32mts.dll otlibssl32mts.dll

otlibeay32mts.dll otlibssl32mts.dll

opentop

opentopmts.dll

opentopmtws.dll

icu

 

icuuc32.dll icuio32.dll icuin32.dll icudt32.dll

Poco

PocoXML32mts.dll

PocoXML32mtws.dll

Multi/Debug (using Multi-Threaded CRT)

 

ASCII

Unicode

g1

g1client_D.dll

g1client_UD.dll

openssl

otlibeay32mtds.dll otlibssl32mtds.dll

otlibeay32mtds.dll otlibssl32mtds.dll

opentop

opentopmtds.dll

opentopmtwds.dll

icu

 

icuuc32d.dll icuio32d.dll icuin32d.dll icudt32d.dll

Poco

PocoXML32mtds.dll

PocoXML32mtwds.dll

Unix

Each ClientSDK configuration produces library files with a common base name (libg1client ) but with a unique suffix. Spectrum™ Technology Platform provides a multithread and release build for ASCII version and UNICODE version.

The library suffixes work like this:-

libg1client<U>.<so|sl|a>

  • U—indicates a UNICODE version build. If this is absent it indicates an ASCII build.

To use the UNICODE version, you need to define LIB_UNICODE in your project.

In UNICODE Version C++ API, the namespace for all classes is g1client.

AIX

   
 

ASCII

Unicode

g1

libg1client.so

libg1client_U.so

openssl

libcrypto.so libssl.so

libcrypto.so libssl.so

opentop

libopentop-xlCmt.so

libopentop-xlCmtw.so libotxml-xlCmtw.so

icu

 

libicudata34.a libicui18n34.a libicuio34.a libicuuc34.a

Poco

libPocoXML.so

 

HP-UX

   
 

ASCII

Unicode

g1

libg1client.sl

libg1client_U.sl

openssl

libcrypto.sl libssl.sl libcrypto.sl.0.9.7 libssl.sl.0.9.7

libcrypto.sl libssl.sl libcrypto.sl.0.9.7 libssl.sl.0.9.7

opentop

libopentop-accmt.sl

libopentop-accmtw.sl libotxml-accmtw.sl

icu

 

libicudata.sl libicudata.sl.34 libicui18n.sl libicui18n.sl.34 libicuio.sl libicuio.sl.34 libicuuc.sl libicuuc.sl.34

Poco

libPocoXML.sl

 

Itanium

   
 

ASCII

Unicode

g1

libg1client.sl

libg1client_U.sl

openssl

libcrypto.a libssl.a

libcrypto.a

libssl.a

opentop

libopentop-accmt.sl

libopentop-accmtw.sl libotxml-accmtw.sl

icu

 

libicudata.sl libicudata.sl.34 libicudata.sl.34.0 libicui18n.sl libicui18n.sl.34 libicui18n.sl.34.0 libicuio.sl libicuio.sl.34 libicuio.sl.34.0 libicuuc.sl libicuuc.sl.34 libicuuc.sl.34.0

Poco

libPocoXML.sl

 

Linux

   
 

ASCII

Unicode

g1

libg1client.so

libg1client_U.so

openssl

libcrypto.so libcrypto.so.0.9.7 libssl.so libssl.so.0.9.7

libcrypto.so libcrypto.so.0.9.7 libssl.so libssl.so.0.9.7

opentop

libopentop-gccmt.so

libopentop-gccmtw.so libotxml-gccmtw.so

icu

 

libicudata.so libicudata.so.34 libicui18n.so libicui18n.so.34 libicuio.so libicuio.so.34 libicuuc.so libicuuc.so.34

Poco

libPocoXML.so

 

Solaris

   
 

ASCII

Unicode

g1

libg1client.so

libg1client_U.so

openssl

libcrypto.so libcrypto.so.0.9.7 libssl.so libssl.so.0.9.7

libcrypto.so libcrypto.so.0.9.7 libssl.so libssl.so.0.9.7

opentop

libopentop-fortemt.so

libopentop-fortemtw.so libotxml-fortemtw.so

icu

 

libicudata.so libicudata.so.34 libicui18n.so libicui18n.so.34 libicuio.so libicuio.so.34 libicuuc.so libicuuc.so.34

Poco

libPocoXML.so