Status & Roadmap
Authors & License
Funding U++
Search on this site

SourceForge.net Logo

SourceForge.net Logo

GitHub Logo

Discord Logo


On this page you can find documentation for U++ framework. It is organized thematically. Each major package has a dedicated section. Not everything is documented as we want. However, during the last few years we have made significant progress in covering white stains. Enjoy your reading!

If you find that something is missing and you have questions. U++ community is ready to provide excellent support on the forum.

Table of Contents


1. Installation and Configuration

2. TheIDE Documentation

3. U++ Essentials

3.1 Overview

3.2 Tutorials

3.3. U++ Packages

4.1 Core

4.2 Core/POP3

4.3 Core/SMTP

4.4 Core/SSH

4.5 Draw

4.6 CtrlCore

4.7 CtrlLib

4.8 RichText

4.9 Sql

4.10 Docking

4.11 Esc

4.12 GLCtrl

4.13 GridCtrl

4.14 MySql

4.15 Painter

4.16 RasterPlayer

4.17 Report

4.18 SqlCtrl

4.19 VirtualGui

4.20 plugin/bz2

4.21 plugin/jpg

4.22 plugin/lz4

4.23 plugin/lzma

4.24 plugin/md

4.25 plugin/zstd

4.26 plugin/zstd legacy


1. Installation and Configuration


Win32 Installation guide

POSIX Installation guide

macOS Installation guide


U++ usage and development cycle guide


2. TheIDE Documentation


Getting started with TheIDE

TheIDE beginner guide


Packages, Assemblies and Nests

Configuring Packages and Assemblies

Command line arguments

Code Formatting



File types


Build flags



Macro Manager

Layout Designer

Icon Designer

Special features

Advanced Find and Replace

Finding specific file in project (Find File)

Importing external libraries in source form


U++ package/project templates

U++ package file description


UMK - command line builder

UppHub - additional packages from the Internet

Using TheIDE as a Cross Development Tool


Working with Android builder


3. U++ Essentials

3.1 Overview




Standard U++  packages

List of all widgets


Coding style


Supporting UHD displays and Dark theme


3.2 Tutorials


Core Tutorial - the introduction to the foundations behind the framework.

GUI Tutorial - learn how to build graphical user interfaces with the U++.

Draw Tutorial - get knowledge about drawing custom content inside window or control.

Image Tutorial - check out the mechanism behind the image manipulation.

Network Tutorial - learn how to use U++ core components for network application creation.

Sql Tutorial - introduction to using databases within U++ framework.


4 U++ Packages

4.1 Core 📦

Non-GUI code. Streams, NTL containers, concrete types, Value, XML, C parsing etc...


Using Core

        About storing configuration

        About Stream

        Charset and encoding issues

        Design decisions and tradeoffs

        Including binary data using .brc files

        Internationalization and translation files


        NTL and standard library

        NTL vs STL

        New features of U++ Core 2016 (C++11)

        Resolving memory leaks in U++ applications

        Rules for references to Value internal maps elements

        Runtime dynamic linking using .dli files

        Standard U++  packages

        Storing custom data types in Values

        Transfer semantics

        Translating U++

        U++ Containers overview - NTL

        U++ Network Tutorial

        U++ Core Tutorial

        U++ traps and pitfalls


Core reference


        AProcess and LocalProcess


        Application & environment utility



        AsyncWork and Async







        Character set support





        Date formatting and scanning

        Date and Time

        Fast compression routines

        File path utilities



        Format - text formatting

        Formatting functions


        Global Value Cache

        Heap functions











        Internet utility


        JSON support

        JsonIO and Jsonize framework



        Low Level Data Functions

        Math utility




        Numeric Conversions



        Parallel algorithms

        Parallel Sorting Template Functions

        ParseXmlFilter and IgnoreXmlPaths


        Primitive Data Types

        Ptr and Pte






        SHA-2 functions


        Serialization utilities


        Small utility functions






        Sorting template functions


        Split, Join, Merge

        Stream utilities


        String utility functions

        String and WString

        StringBuffer and WStringBuffer


        Template Algorithms For Sorted Sets

        Template Algorithms

        Thread synchronization primitives


        U++ Logging

        Unicode UTF[8,16,32] support










        XML output




        Zlib encapsulation





4.2 Core/POP3 📦

Post Office Protocol, version 3 encapsulation. Author: İsmail Yılmaz


Core/POP3 reference


        struct InetMessage



4.3 Core/SMTP 📦

Simple Mail Transfer Protocol


Core/SMTP reference




4.4 Core/SSH 📦

SSH2 protocol encapsulation, using libssh2.


Core/SSH reference


        Channels: Scp, Exec, Tunnel, Shell

        Known Hosts






4.5 Draw 📦

Fundamental graphics operations, including raster image processing


Using Draw

        Draw Tutorial


        Image Tutorial

        Supporting UHD displays and Dark theme


Draw reference

        Common Raster classes

        DDA Rasterizer




        Draw Colors



        Font and Text Routines


        Image Utility Functions

        Image and ImageBuffer



        ImageMaker - image cache system

        Iml and image list class methods






        Ultra High Definition Displays support



4.6 CtrlCore 📦

GUI core system


Using CtrlCore

        About Frames

        About modal loops and periodic timer events

        Cameleon Rendering & Creating own chameleonized Ctrl's

        Ctrl Design Concepts

        GUI programming and multithreading

        Logical positions

        Reacting to resolution


CtrlCore reference




        Function to support actual resolution

        GUI Mutex operations

        Layout functions

        MacOS menu support

        PasteClip basic formats support functions


        SystemDraw utility functions




4.7 CtrlLib 📦

Basic library of GUI elements


Using CtrlLib

        About Updater

        About Callbacks and Bars

        About rounding double values

        GUI Tutorial

        Tips & tricks


CtrlLib reference






        Color widgets


        CtrlLib widgets







        EditField derived classes



        FileSel utilities




        LabelBase - basic label routines



        Message Boxes






        Simple single-value dialogs





        Static widgets

        StatusBar and related widgets









        WithSpin template and Value editors with spin buttons



4.8 RichText 📦

Rich-text data structures and painting, including RTF and HTML export/import


Using RichText

        QTF - Quixotic Text Format


RichText reference

        RichText to HTML output




4.9 Sql 📦

Fundamental SQL classes - session, cursor, SQL language expressions, DB schemas


Using Sql

        Basic Use and Description

        Incremental Development of Database Models/Schemas

        SQL Tutorial

        U++ SQL Basics


Sql reference

        S_type structures

        Schema introspection



        SqlExp in examples




        .sch SQL schema files



4.10 Docking 📦

Window Docking framework


Docking reference






4.11 Esc 📦

Esc scripting language interpreter


Using Esc

        Esc scripting language



4.12 GLCtrl 📦

OpenGL widget base class


GLCtrl reference




4.13 GridCtrl 📦

Grid control


GridCtrl reference





4.14 MySql 📦

MySQL interface


Using MySql

        Native MySql connection



4.15 Painter 📦

2D software rendering with PDF/SVG strength


Painter reference



        SVG support



4.16 RasterPlayer 📦

Control to show animated GIF and multipage TIFF files


RasterPlayer reference




4.17 Report 📦

Preview and printing of reports


Using Report




4.18 SqlCtrl 📦

GUI widgets and routines for SQL


SqlCtrl reference





4.19 VirtualGui 📦

Abstract GUI implementation, with window manager, with minimal implemenation requirements


VirtualGui reference




4.20 plugin/bz2 📦

BZ2 compressor/decompressor


plugin/bz2 reference

        BZ2 Compression



4.21 plugin/jpg 📦

JPEG image file format


plugin/jpg reference




4.22 plugin/lz4 📦

LZ4 compressor (lower compression but very fast)


plugin/lz4 reference

        LZ4 compression



4.23 plugin/lzma 📦

LZMA compressor (slow, but very good ratio)


plugin/lzma reference




4.24 plugin/md 📦

Markdown to QTF converter, based on MD4C library


plugin/md reference




4.25 plugin/zstd 📦

zstd compressor (good ratio, very good speed)


plugin/zstd reference

        Zstd compression



4.26 plugin/zstd legacy 📦

Support for older zstd format. Do not use with new applications.


plugin/zstd legacy reference

        Zstd compression


Do you want to contribute?