DSLib - freie und kostenlose C++-Bibliothek

DSLib - freie C++-Bibliothek

Die DSLib ist eine in C++ implementierte Bibliothek, die auf wxWidgets basiert und einige Hilfen für grafische und nicht grafische Anwendungen bietet. Neben Datenbankklassen für PostgreSQL, MySQL und SQLite gibt es Persistenz-ähnliche Klassen für die drei Datenbanken, Klassen für CGI, einfache Sockets, Kontainer und vieles mehr. Leider sind wir noch nicht dazu gekommen, die DSLib zu dokumentieren. Daran arbeiten wir. Solange müssen leider die Header-Dateien als Dokumentation herhalten. Hier zum Herunterladen klicken.

Die Bibliothek funktioniert unter Windows, Linux, macOS und FreeBSD und wird, unter anderem, auf dieser Website, auf compow.de sowie unter Warehouse eingesetzt.

Hier gibt es jetzt das Changelog.

Folgende Klassen sind vorhanden:

DSLib

Hierbei handelt es sich um die Basisklasse, von der alle weiteren Klassen abgeleitet sind. Neben dieser Funktion bietet die Klasse Methoden zum Splitten von Strings, Ausgabe-Methoden (Print) zur Ausgabe von wxStrings, Eingabe-Methoden, Verwaltung von Textresourcen und Versionsvergleichkontrollen.

DSCasts

Eine Casting-Bibliothek: von Float nach String, von String nach Integer, vor und zurück, etliche Formate.

DSCgi

Mit dieser Klasse werden wichtige Methoden für die Entwicklung von Websites bereitgestellt. Es fehlen derzeit noch zwei wesentliche Dinge: Cookies und Dateiuploads sind noch nicht implementiert.

DSClassInfo

Diese Klasse wird von jeder anderen Klasse in der DSLib zurückgegeben, um Informationen über den Autor, die Version und den Namen der jeweiligen Klasse zu erhalten.

DSConfiguration

Einfache Klasse zum Laden und Speichern von einfachen Konfigurationsdateien.

DSConstants

Hier sind ein paar Konstanten deklariert, die beispielsweise für DSFile wichtig sind.

DSContainer

Eine Vektor-Klasse, die DSContainerType aufnimmt und anhand eines Strings prüfen kann, ob bereits ein gleicher Eintrag vorhanden ist.

DSContainerType

Der Typ für DSContainer. Alle Klassen, die in DSContainer verwaltet werden, müssen von DSContainerType abgeleitet sein.

DSCurrency

Typ, um Währungen bzw. Fließkommazahlen mit zwei Stellen hinter dem Komma darzustellen. Hier gibt es auch Methoden zum kaufmännischen Runden.

DSDaemon

Eine einfache Klasse, um sehr einfach Daemons (für Windowsbenutzer "Services") in C++ zu implementieren. Funktioniert nur unter Linux und FreeBSD (und ähnlichen), allerdings nicht unter Windows.

DSDatabaseEntity

Datenbankentität. Ist für die generelle Datenbankdatenhaltung zuständig (s. DSEntity).

DSDatabase

Generelle, abstrakte Datenbankklasse, die hauptsächlich Verbindungsinformationen speichert.

DSData

Einfacher Datenbankzugriff auf Tabellen. Sehr zu empfehlen bei komplexen Datenbankanwendungen. Beispielsweise müssen nicht alle Daten auf einen Schlag geholt werden, ebenfalls muss nicht das einzelne Abholen erneut implementiert werden.

DSDateTime

Ist von wxDateTime abgeleitet und um einige Methoden erweitert.

DSDebug

Klasse zum einfachen Speichern von Strings in der Datei mit Namen "debug.txt". Wunderbar in Kombination mit Daemons und CGI-Anwendungen, die keine direkten Konsolenausgaben unterstützen (sofern das nicht umbiegt).

DSEntityData

Abgeleitet von DSData, erweitert um Datenbankpersistenzmethoden.

DSEntity

Entitätsklasse zur Datenhaltung. Wird derzeit hautpsächlich in den Datenbankpersistenzklassen verwendet. Folgen werden noch Entitäten zum Persistieren innerhalb von CVS- und XML-Strukturen.

DSError

Klasse zur Fehlerbehandlung. Hält mehrere Fehlermeldungen im Speicher.

DSErrorType

Datentyp für DSError.

DSFile

Einfache Dateiklasse. Sie ist von wxFFile abgeleitet und es ist möglich, einzelne Zeilen in einen wxArrayString zu einzulesen.

DSListCtrl

wxListCtrl erweitert um einfache Methoden zum Zugriff auf List-Controls. Wer wxListCtrl kennt, weiß, dass die Benutzung nicht so einfach ist. Das soll diese Klasse ein wenig vereinfachen.

DSLog

Klasse zum Loggen von Fehlermeldungen in einer Datenbank.

DSLogType

Datentyp für DSLog.

DSMySQLDatabaseEntity

MySQL-Datenbankentität. Wird mit DSMySQLEntityData genutzt.

DSMySQLDatabase

Datenbankkonnektierungsklasse für MySQL.

DSMySQLEntityData

Abgeleitet von DSData.

DSMySQLQuery

Abfrageklasse für MySQL.

DSPostgreSQLDatabaseEntity

PostgreSQL-Datenbankentität. Wird mit DSPostgreSQLEntityData genutzt.

DSPostgreSQLDatabase

Datenbankkonnektierungsklasse für PostgreSQL.

DSPostgreSQLEntityData

Abgeleitet von DSData.

dsPostgreSQL

Kompatibilitätsklasse für eines meiner Projekte. Bitte auf keinen Fall nutzenśondern auf DSPostgreSQLDatabase zurückgreifen.

DSPostgreSQLQuery

Abfrageklasse für PostgreSQL.

DSQuery

Datenbankabfrageklasse. Abgeleitet von DSQueryParser.

DSQueryParser

Abfragenparser. Ausgangspunkt für alle Datenbankabfrageklassen. Enthält auch Binding-Mechanismen, die datenbankunabhängig sind.

DSSession

Einfaches Sessionmanagement. Haupteinsatzgebiet ist CGI.

DSSetup

Hier setzen Sie Kompilierungsoptionen für DSLib. Hat sonst keine Bedeutung.

DSSocket

Einfache Socket-Klasse -> Migriert nach DSPosixSocket -> DSSocket wird derzeit nicht genutzt

DSPosixSocket

Einfache Socket-Klasse

DSSSLSocket

SSL-Socket-Klasse (derzeit in Entwicklung)

DSSQLiteDatabaseEntity

SQLite-Datenbankentität. Wird mit DSSQLiteEntityData genutzt.

DSSQLiteDatabase

Konnektierungsklasse für SQLite.

DSSQLiteEntityData

Datenbankentitätsklasse für SQLite.

DSSQLiteQuery

Abfrageklasse für SQLite.

DSStringHashMap

Einfaches assoziatives String-Array. Achtung: es ist nicht sortiert!

DSTable

Komplexes zweidimensionales dynamisches Array.

DSTemplateContainer

Vektor mit vereinfachten Zugriffsmethoden.

DSTemplate

Templateklasse (nicht zu verwechseln mit C++-Templates). Wird hauptsächlich zur Trennung von Logik und Design bei HTML genutzt.

DSTest

Klasse, um Unit-Tests zu schreiben. (Achtung: ungetestet)

DSTesting

Klasse, um Unit-Tests auszuwerten. (Achtung: ungetestet)

DSType

Alle Typklassen sind hiervon abgeleitet.

DSWeb

Einfacher Wrapper, um sehr schnell das Grundgerüst einer Website mit FastCGI zu erstellen.

DSBind

Bindung zwischen Controls und Entitäten, zur Zeit wird nur wxTextCtrl und wxComboBox unterstützt. Ein Beispiel ist unter cpp/docs/examples/Bind.cpp zu finden.

DSTextCtrl

wxTextCtrl mit Änderungsvariablenübergabe, Regular-Expression für Eingabevalidierung während der Eingabe

DSComboBox

wxComboBox mit Änderungsvariablenübergabe und SetMaxLength-Methode

DSCheckBox

wxCheckBox mit Änderungsvariablenübergabe

DSListBox

wxListBox mit Änderungsvariablenübergabe

DSDatePickerCtrl

wxDatePickerCtrl mit Änderungsvariablenübergabe

DSSpinCtrl

wxSpinCtrl mit Änderungsvariablenübergabe

DSPayPal*

Klassen zum einfachen Zugriff auf das PayPal-API

DSFileSystem und Konsorten

Abstrahiert einen Teil des Dateisystems

Die Benutzung ist auf eigene Gefahr. Ich kann keine Garantie dafür übernehmen, dass alles funktioniert und keinen Schaden anrichtet.

Download

DSLib2-0.22.6.tar.gz (BSD-Lizenz, ca. 113kb, 20.11.2017, md5 2b59fbf2c185918713e5091f718e7e1a)

Alte Versionen:


DSLib-0.18.0.tgz (BSD-Lizenz, ca. 73kb, 12.09.2011, md5 7013e9053d263521fff8525149fd817a)
DSLib-0.16.4.tgz
(BSD-Lizenz, ca. 68kb, 08.05.2011, md5 fb7484eebfa5c324027944d2220f5c35)
DSLib-0.16.3.tgz
(BSD-Lizenz, ca. 68kb, 04.05.2011, md5 be195e3acc994a781c2c4dcc10db6349)
DSLib-0.16.2.tgz
(BSD-Lizenz, ca. 68kb, 24.04.2011, md5 8f29d0fb05aae53099a608d4016ce881)
DSLib-0.16.1.tgz
(BSD-Lizenz, ca. 68kb, 17.04.2011, md5 4386cc764fa48f51e68c7dca81164cee)
DSLib-0.16.0.tgz
(BSD-Lizenz, ca. 68kb, 23.11.2010, md5 7ccf0dd680aa0da6b3a3f34e15b48739)
DSLib-0.15.4.tgz (BSD-Lizenz, ca. 68kb, 17.11.2010, md5 1daf784eb4a2f8c3e8441c3af2530f08)
DSLib-0.15.3.tgz
(BSD-Lizenz, ca. 67kb, 27.10.2010, md5 654da7975483716a09dea41efe22b00c)
DSLib-0.15.2.tgz
(BSD-Lizenz, ca. 67kb, 26.10.2010, md5 0b8fd1fc75ab20ea2b6645349d263e68)
DSLib-0.15.1.tgz
(BSD-Lizenz, ca. 66kb, 16.10.2010, md5 b043ef6ecc679efea0df2f84002f4ea1)
DSLib-0.15.0.tgz
(BSD-Lizenz, ca. 67kb, 13.10.2010, md5 5a011b823d3865ff8fd77462df2e8c5c)
DSLib-0.14.7.tgz
(BSD-Lizenz, ca. 62kb, 06.10.2010, md5 5ca86774ca993e8de325f816849538c0)
DSLib-0.14.5.tgz
(BSD-Lizenz, ca. 62kb, 07.07.2010, md5 56132939d288de6c97b4449038777fa5)
DSLib-0.14.4.tgz
(BSD-Lizenz, ca. 62kb, 19.06.2010, md5 71f37b9783dce55758cd8483ceb3def3)
DSLib-0.14.3.tgz
(BSD-Lizenz, ca. 62kb, 10.06.2010, md5 2779843c7b89d812ca829db929e316b8)
DSLib-0.14.2.tgz
(BSD-Lizenz, ca. 60kb, 25.05.2010, md5 3de557eaac8cf179e57e2784077585f4)
DSLib-0.14.1.tgz
(BSD-Lizenz, ca. 60kb, 19.02.2010, md5 f734483b23914de84bc5e9da8c85e4f0)
DSLib-0.14.0.tgz
(BSD-Lizenz, ca. 60kb, 01.02.2010, md5 e799a17edaf9165972ecb87ba5c9e82c)
DSLib-0.12.6.tgz (BSD-Lizenz, ca. 60kb, 25.11.2009, md5 70abac81c082ccee892c0ad6bf8580f6)
DSLib-0.12.4.tgz (BSD-Lizenz, ca. 59kb, 18.11.2009, md5 4ab1cbe9a1499a03e482d609913aa448)

 

Changelog

Version 0.22.6 - 20.11.2017

Völlige Restrukturierung der Verzeichnisse und Makefiles. Dabei sind jetzt auch DSPayPal und Konsorten, um mit PayPal Zahlungen durchzuführen, DSBase64Library, DSFileSystem und Konsorten sowie Fehlerbehebungen. Leider bin ich immer noch eine Doku schuldig. Achtung beim Entpacken: Aufgrund der Restrukturierung heißt die DSLib jetzt DSLib2.

Version 0.18.0 - 12.09.2011

  • Zugekommene Klasse
    • DSTextCtrl (mit Übergabe einer RegEx, die währende der Eingabe geprüft wird, mit "geändert"-Variable als Übergabe)
    • DSCheckBox (mit "geändert"-Variable als Übergabe)
    • DSComboBox (mit "geändert"-Variable als Übergabe)
    • DSDatePickerCtrl (mit "geändert"-Variable als Übergabe)
    • DSListBox (mit "geändert"-Variable als Übergabe)
    • DSSpintCtrl (mit "geändert"-Variable als Übergabe)
  • Großer Fehler in DSEntity behoben. Beim Ändern von Werten in Entitäten ab jetzt bitte nicht mehr Set nutzen, sondern SetValue. Bitte vorhandene Software umschreiben, da ansonsten die Flags verloren gehen

Version 0.16.4 - 08.05.2011

  • Fehler in der Methode "BuildDeleteQuery" von DSDatabaseEntity.cpp korrigiert (Primärschlüsselattribut darf jetzt case-sensitive sein)

Version 0.16.3 - 04.05.2011

  • Großer Fehler in DSPostgreSQLEntityData.cpp ExecQuery behoben. Autosequenzen dürfen jetzt case-sensitive sein, vorher wurde das ignoriert und false zurückgegeben

Version 0.16.2 - 24.04.2011

  • DSWeb - DSDebug wurde aus dem IMPLEMENT_WEB herausgenommen. Somit wird jetzt im Standard kein Debugging mehr geschrieben
  • DSDebug.h-Include aus DSEntityData.h und DSCgi.h herausgenommen