You are here: Start » C++ Project Configuration

C++ Project Configuration

General Information

FabImage Deep Learning Library is designed to be used as a part of C++ projects developed with Microsoft Visual Studio in versions 2015-2019.

Required Project Settings

All projects that use FabImage Deep Learning Library need some specific values of the compiler and linker settings. Please apply the settings listed below to configured project:

  • Configuration Properties | General
    • Character Set should be set to Use Unicode Character Set.
  • Configuration Properties | C/C++
    • General
      • Additional Include Directories should contain the $(FILDL_PATH1_0)\include\ path.
  • Configuration Properties | Linker
    • General
      • Additional Library Directories should contain the proper path to directory containing the FILDL.lib file. The proper path is $(FILDL_PATH1_0)\lib\$(PlatformName)\.
    • Input
      • Additional Dependencies should contain FILDL.lib file.
  • Configuration Properties | Build Events
    • Post-Build Event
      • Command Line should contain copy "$(FILDL_PATH1_0)\bin\$(PlatformName)\FILDL.dll" "$(OutDir)" call. This setting is not mandatory, but the application using FabImage Deep Learning Library requires an access to the FILDL.dll file and this is the easiest way to fulfill this requirement.

Including Headers

Every source code file that uses FabImage Deep Learning Library needs the #include <FILDL.h> (and/or #include <Api.h>) directive. A proper path to the FILDL.h file is set in the settings of the compiler (described above), so there is no need to use the full path in the directive.

Providing Dependencies

All programs using FILDL.dll have to load DLL files from Deps_x64 subdirectory of FabImage Deep Learning installation directory. Common ways to ensure that are:

  • add path to Deps_x64 directory to PATH environment variable, or
  • copy contents of Deps_x64 to some directory listed in PATH environment variable, or
  • copy contents of Deps_x64 next to FILDL.dll.

Distributing FabImage Deep Learning Library with Your Application

Once the application is ready, it is time for preparing a distribution package or an installer. There are several requirements that needs to be fulfilled:

  • The final executable file of the application needs to have access to the FILDL.dll file and its dependencies. Typically, the FILDL.dll file should be placed in the same directory as the executable. Dependencies can be provided in several ways, described above.
  • Functions not related to C++ Training Api does not require running FabImage Deep Learning Service (this is even discouraged).
  • Note, that functions related to Instances Segmentation require running FabImage Deep Learning Service. It is installed with FabImage Deep Learning package. Functions related to Feature Detection, Points Location, Anomaly Detection or Object Classification does not require running Service.
  • The computer that the application will run on needs a valid license for the use of FabImage Deep Learning product. Licenses can be managed with the License Manager application, that is installed with FabImage Deep Learning package.
  • A license file (*.fikey) can be also manually copied to the end user's machine without installing FabImage Deep Learning. It must be placed in a subdirectory of the AppData system folder. The typical location for the license file is C:\Users\%USERNAME%\AppData\Local\FabImage\Licenses. Remember that the license is valid per machine, so every computer that runs the application needs a separate license file.
  • Alternatively to the (*.fikey) files we support USB Dongle licenses.
Previous: Installation Manual Next: C# Project Configuration