Sample code for 30+ languages & platforms
C++ Requires Chilkat v11.7.0+

Get the QR Code Capabilities of the Chilkat Version in Use

See more QR Code Examples

Demonstrates the capabilities operation, which describes what the installed version of Chilkat can do: the range of QR versions, the error-correction levels, the operations, the image formats and the limits. A program can check for a feature here instead of testing for a Chilkat version number. The request can be an empty JSON object.

Chilkat C++ Downloads

C++
#include <CkJsonObject.h>
#include <CkFormats.h>

void ChilkatSample(void)
    {
    bool success = false;

    //  This example requires the Chilkat API to have been previously unlocked.
    //  See Global Unlock Sample for sample code.

    CkJsonObject json;
    CkFormats fmt;
    CkJsonObject jsonOut;
    success = fmt.QrCode("capabilities",json,jsonOut);
    if (success == false) {
        std::cout << fmt.lastErrorText() << "\r\n";
        return;
    }

    std::cout << "Chilkat version: " << jsonOut.stringOf("productVersion") << "\r\n";
    std::cout << "symbology: " << jsonOut.stringOf("symbologies[0].id") << "\r\n";
    std::cout << "QR versions: " << jsonOut.IntOf("symbologies[0].encoding.version.min") << " to " << jsonOut.IntOf("symbologies[0].encoding.version.max") << "\r\n";
    std::cout << "structured append, most symbols: " << jsonOut.IntOf("symbologies[0].structuredAppend.maxSymbols") << "\r\n";

    int i;
    int n;
    n = jsonOut.SizeOfArray("symbologies[0].encoding.errorCorrection");
    for (i = 0; i <= n - 1; i++) {
        jsonOut.put_I(i);
        std::cout << "error correction: " << jsonOut.stringOf("symbologies[0].encoding.errorCorrection[i]") << "\r\n";
    }

    //  The operations this version implements.
    n = jsonOut.SizeOfArray("operations");
    for (i = 0; i <= n - 1; i++) {
        jsonOut.put_I(i);
        if (jsonOut.BoolOf("operations[i].available") == true) {
            std::cout << "operation: " << jsonOut.stringOf("operations[i].name") << "\r\n";
        }

    }

    n = jsonOut.SizeOfArray("imageFormats.output");
    for (i = 0; i <= n - 1; i++) {
        jsonOut.put_I(i);
        std::cout << "image format: " << jsonOut.stringOf("imageFormats.output[i]") << "\r\n";
    }

    std::cout << "default timeout: " << jsonOut.IntOf("limits.timeoutMs.default") << " ms" << "\r\n";
    std::cout << "default largest image: " << jsonOut.IntOf("limits.maxPixels.default") << " pixels" << "\r\n";

    //  Sample output:

    //  Chilkat version: 11.7.0
    //  symbology: qr
    //  QR versions: 1 to 40
    //  structured append, most symbols: 16
    //  error correction: auto
    //  error correction: L
    //  error correction: M
    //  error correction: Q
    //  error correction: H
    //  operation: generate
    //  operation: measure
    //  operation: validate
    //  operation: capabilities
    //  image format: png
    //  image format: svg
    //  default timeout: 10000 ms
    //  default largest image: 16777216 pixels
    }