Supported Platforms

The C++ edition of CBFS Connect is provided as a set of libraries in a variety of packages. Each package is designed to best suit your development environment. The sections below provide further details on each supported platform.

Windows

Libraries for windows are provided as dll files. Additionally, the full version of the toolkit includes static libraries. The lib folder of the installation includes the 32-bit dll and static library. The lib64 folder of the installation includes the 64-bit dll and static library.

Static Library Notes

When using the static library, each component must be initialized and destroyed using its corresponding StaticInit and StaticDestroy method.

// Call StaticInit before using the component. Replace "ComponentName" with the appropriate class name.
CBFSConnect_ComponentName_StaticInit(0);

// Call StaticDestroy after using the component. Replace "ComponentName" with the appropriate class name.
CBFSConnect_ComponentName_StaticDestroy();
StaticInit should be called during application startup, before creating or interacting with any component instances. StaticDestroy should be called after all instances have been destroyed. It is important to ensure that these methods are called only once for each component. Multiple calls to the above methods may cause unexpected behavior.

Linux/Unix

Libraries for Linux are provided as compiled shared libraries (.so files). The lib folder of the installation includes the 32-bit .so file. The lib64 folder of the installation includes the 64-bit .so file.

Obfuscated Source Notes

The full version of the toolkit includes obfuscated source code. The src folder of the installation includes the source files. The obfuscated source code can be compiled with g++. For instance a makefile may look like:

mytarget: cbfsconnect.o
        g++ -D UNIX -o myapp cbfsconnect.o myapp.cpp -I../include/ -lz -ldl -lpthread

cbfsconnect.o:
        g++ -c -fno-exceptions -fno-rtti -fPIC -o cbfsconnect.o cbfsconnect.cpp

The header files for the system compression library libz-dev must be present in the linker search path.

macOS

The library for macOS is provided as a dynamic library (.dylib file). The lib64 folder of the installation includes the .dylib file. In the full version, the src folder contains the obfuscated source code and corresponding makefile.

Obfuscated Source Notes

The full version of the toolkit includes obfuscated source code. The src folder of the installation includes the source files. The obfuscated source code can be compiled with g++. For instance a makefile may look like:

mytarget: cbfsconnect.o
        g++ -D UNIX -arch arm64 -o myapp cbfsconnect.o myapp.cpp -lz libresolv.dylib libiconv.dylib libdl.dylib

cbfsconnect.o:
        g++ -c -fno-exceptions -fno-rtti -fPIC -arch arm64 -o cbfsconnect.o cbfsconnect.cpp -framework Carbon -framework Security

The header files for the system compression library libz-dev must be present in the linker search path.

Qt

The installation directory contains an include\qt folder with header files which allow the components to be used in Qt. To use the components in Qt Creator first navigate to the Projects menu, then the Add Library option and finally select the External Library option. Browse to the cbfsconnect22.lib file within the lib or lib64 folder. Ensure the Add 'd' suffix for debug version is unchecked.

Then, add the header file of the component to be used under the HEADERS variable in the .pro file. The HEADERS variable will look something like this: HEADERS += C:\My\Install\Path\include\qt\qhttp.h . Note that the path should contain no spaces.

Finally, the header for the desired components can then be added in code. For instance: #include "C:\My\Install\Path\include\qt\qhttp.h"