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

Single Threaded/Release

ASCII

Unicode

g1

libg1client_S.lib

libg1client_SU.lib

openssl

otlibeay64.lib otlibssl64.lib

otlibeay64.lib otlibssl64.lib

opentop

opentop.lib

opentopw.lib

icu

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

Poco

PocoXML64.lib

PocoXML64w.lib

Single Threaded/Debug

ASCII

Unicode

g1

libg1client_SD.lib

libg1client_SUD.lib

openssl

otlibeay64d.lib otlibssl64d.lib

otlibeay64d.lib otlibssl64d.lib

opentop

opentopd.lib

opentopwd.lib

icu

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

Poco

PocoXML64d.lib

PocoXML64wd.lib

Multi/Release (using Multi-Threaded CRT)

ASCII

Unicode

g1

libg1client.lib

libg1client_U.lib

openssl

otlibeay64mt.lib otlibssl64mt.lib

otlibeay64mt.lib otlibssl64mt.lib

opentop

opentopmt.lib

opentopmtw.lib

icu

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

Poco

PocoXMLmt64.lib

PocoXML64mtw.lib

Multi/Debug (using Multi-Threaded CRT)

ASCII

Unicode

g1

libg1client_D.lib

libg1client_UD.lib

openssl

otlibeay64mtd.lib otlibssl64mtd.lib

otlibeay64mtd.lib otlibssl64mtd.lib

opentop

opentopmtd.lib

opentopmtwd.lib

icu

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

Poco

PocoXMLmt64d.lib

PocoXML64mtwd.lib

Dynamic Library

Multi/Release (using Multi-Threaded CRT)

ASCII

Unicode

g1

g1client.dll

g1client_U.dll

openssl

otlibeay64mts.dll otlibssl64mts.dll

otlibeay64mts.dll otlibssl64mts.dll

opentop

opentopmts.dll

opentopmtws.dll

icu

icuuc64.dll icuio64.dll icuin64.dll icudt64.dll

Poco

PocoXML64mts.dll

PocoXML64mtws.dll

Multi/Debug (using Multi-Threaded CRT)

ASCII

Unicode

g1

g1client_D.dll

g1client_UD.dll

openssl

otlibeay64mtds.dll otlibssl64mtds.dll

otlibeay64mtds.dll otlibssl64mtds.dll

opentop

opentopmtds.dll

opentopmtwds.dll

icu

icuuc64d.dll icuio64d.dll icuin64d.dll icudt64d.dll

Poco

PocoXML64mtds.dll

PocoXML64mtwds.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