Build and deploy UltraLite C++ applications

When building a C/C++ application that does not use the UltraLite engine, you can either link to a static UltraLite runtime library (this makes sure all the UltraLite code is linked into your application) or, on Windows and Windows Mobile, you can link to an import library and load the UltraLite runtime code dynamically when the application starts.

 Deploy UltraLite for Windows and Windows Mobile devices when using static linkage
  1. Specify the following connection and creation parameters:

    • When using obfuscation, set the creation parameter obfuscate=1 when creating the database

    • When using AES, or FIPS 140-2 AES encryption, set the connection parameter DBKEY=encryption-key when creating or connecting to the database

  2. Follow the appropriate steps for the synchronization type used in your UltraLite application:

    Synchronization Type Parameter settings
    TCP/IP

    Set the Stream synchronization parameter to "tcpip".

    HTTP

    Set the Stream synchronization parameter to "http".

    RSA TLS

    Set the Stream synchronization parameter to "tls".

    RSA HTTPS

    Set the Stream synchronization parameter to "https".

    ECC TLS

    Set the Stream synchronization parameter to "tls".

    Set the protocol option tls_type=ecc.

    When using ECC E2EE encryption, set the protocol option e2ee_type=ecc.

    ECC HTTPS

    Set the Stream synchronization parameter to "https".

    Set the protocol option tls_type=ecc.

    When using ECC E2EE encryption, set the protocol option e2ee_type=ecc.

    FIPS 140-2 RSA TLS

    Set the Stream synchronization parameter to "tls".

    Set the protocol option fips=yes.

    FIPS 140-2 RSA HTTPS

    Set the Stream synchronization parameter to "https".

    Set the protocol option fips=yes.

  3. When using RSA, ECC, or RSA FIPS 140-2 End-to-End encryption, set the protocol option e2ee_public_key=key-file.

  4. When using ZLIB compression, set the protocol option compression=zlib.

  5. Link against the following files:

    • ulrt.lib

    • ulbase.lib

    • When using RSA TLS, or RSA HTTPS synchronization, ulrsa.lib

    • When using ECC TLS, or ECC HTTPS synchronization, ulecc.lib

  6. Call the following methods in your UltraLite application:

    • When using AES encryption, the ULDatabaseManager.EnableAesDBEncryption method

    • When using FIPS 140-2 AES encryption, the ULDatabaseManager.EnableAesFipsDBEncryption method

  7. Ensure that the following methods are called for they synchronization type used in your UltraLite application:

    • TCP/IP   Call the EnableTcpipSynchronization method.

    • HTTP   Call the EnableHttpSynchronization method.

    • TLS using RSA   Call the EnableTlsSynchronization and EnableRsaSyncEncryption methods.

    • HTTPS using RSA   Call the EnableHttpsSynchronization and EnableRsaSyncEncryption methods.

    • TLS using ECC   Call the EnableTlsSynchronization and EnableEccSyncEncryption methods.

    • HTTPS using ECC   Call the EnableHttpsSynchronization and EnableEccSyncEncryption methods.

    • TLS using FIPS 140-2 RSA   Call the EnableTlsSynchronization and EnableRsaFipsEncryption methods.

    • HTTPS using FIPS 140-2 RSA   Call the EnableHttpsSynchronization and EnableRsaFipsSyncEncryption methods.

  8. Deploy the following files:

    • When using FIPS 140-2 AES encryption, ulfips12.dll and sbgse2.dll.

    • When using RSA FIPS 140-2 TLS, or RSA FIPS 140-2 HTTPS synchronization, sbgsse2.dll, and mlcrsafips12.dll.

 Linker/compiler options to build and link runtimes for Linux deployment
 Build and link runtimes for iPhone deployment
 Build and link runtimes for Mac OS X deployment
 See also