2020/05/04 - Ein bisschen Codeaufbereitung und Wiederaufnahme und Entfernung von Warnungen, die von bestimmten Compilern gekennzeichnet sind. In den letzten Monaten bin ich aufgrund von Updates zur Steigerung von ASIO -Code zu neueren Boost gewechselt.
2019/08/29 - Zusätzliche String -Dienstprogrammfunktionen hinzugefügt.
2019/04/11 - Support für Google -Protokollpuffer in Serialisierungsversorgungsunternehmen. Daher unterstützt automatisch in allen ASIO -Klassen wie TCP-, UDP- und Multicast -Klassen.
Diese Bibliothek (Corelibrary) ist eine Sammlung nützlicher C ++ 1x-Dienstprogrammklassen, mit denen Multi-Threading, Protokollierung, Netzwerk, benutzerdefinierte Ausnahmen, Datei-Dienstprogramme, INI-Dateien, Serialisierung, Sortierung, String-Dienstprogramme usw. unterstützt werden können. Mit anderen Worten eine allgemeine Codesammlung, die in vielen verschiedenen C ++ - Codierungsprojekten sehr nützlich ist.
Wenn Sie einen dieser Code nützlich finden und in Ihrer Software verwenden oder Teile davon nehmen, um Ihre eigenen Arbeiten zu stützen, geben Sie bitte Anerkennung und respektieren Sie die Lizenz.
Es ist unter den Bestimmungen von LGPL 3.0 lizenziert und die entsprechende Dokumentation hierfür finden Sie oben in jeder Quelldatei und in der Lizenztextdatei.
Der Code ist die Arbeit von mir (Duncan Crutchley) ([email protected]).
Copyright (C) 2014 Duncan Crutchley.
Diese Bibliothek wurde in QT Creator für Windows und Linux entwickelt. In Windows wird empfohlen, die MSVC2017 -Werkzeugkette innerhalb von QT Creator zu verwenden, um den Code zu erstellen und zu testen, aber erfolgreich mit MSVC2013 und MSVC2015 verwendet. Andere Compiler wurden in Fenstern wie Clang 3.4+ und GCC (MINGW) 4.8.x+ getestet, und der Code sollte damit funktionieren. In Linux wurde der Code mit GCC 4.8.x+ und Clang 3.4+ getestet. Ich versuche immer, die neueste stabile Version eines jeden Compilers zu verwenden, mit dem ich diesen Code erstelle. Daher werde ich daher nicht garantieren, dass ich Unterstützung für ältere Compiler beibehalten werde, wenn ich meinen Code mit Verbesserungen und neuen Funktionen weiter verschachte.
Unter Windows (Win10 64bit) verwende ich derzeit MSVC 2017 64 -Bit -Kit im QT Creator 4.9.2/ QT Framework 5.13.0. Auf Linux (Manjaro) verwende ich derzeit GCC 8.2.1 und Clang 8.0.0 Kits in QT Creator 4.9.2 und Qt Framework 5.13.0.
Die Projekte für die Bibliotheks- und Unit -Tests gelten für QT Creator und arbeiten unter Linux und Windows. Um dies zu erreichen, stützen sich die Projekte darauf, dass die benutzerdefinierten MKSPECs aus dem Ordner QT_Custom_MkSpecs in den Ordner qt kopiert werden. Beispiele MKSPECs werden zur Kompatibilität mit MSVC2017 64bit und Linux bereitgestellt. Diese sollten für das eigene System des Benutzers angepasst werden.
Sie können diesen Code in anderen Entwicklungs- und Build -Umgebungen verwenden, aber es liegt an dem Benutzer, die erforderlichen Projekte oder Makefiles für diese Umgebungen zu erstellen. Dies sollte ziemlich einfach sein, indem sich auf die Datei QT Project (.PRO) und die zuvor erwähnten MKSPEC -Dateien bezieht.
Diese Bibliothek erfordert einige Open-Source-Bibliotheken von Drittanbietern, damit sie kompiliert und fungiert. Diese sind wie folgt:
Wie bei Compilern behalte ich meine Kopien der oben genannten Bibliotheken von Drittanbietern immer auf dem neuesten Stand mit ihren neuesten stabilen Versionen, sodass ich die volle Unterstützung für ältere Rückgaben dieser Bibliotheken nicht garantieren werde, da ich weiter an diesem Projekt arbeite.
Dies ist größtenteils ein Hobbyprojekt, das auf dem Wissen basiert, das ich in meinen langjährigen Erfahrung in der Arbeit in der Softwareentwicklung und in der Wissenschaft seit 1999 gesammelt habe. Ich habe Anfang 2014 mit der Entwicklung dieses Codes begonnen. Dies stellt eine Sammlung von hoffentlich unkomplizierten und nützlichen Klassen für die häufig vorkommenden Softwareentwicklungsbedürfnisse dar.
Der gesamte Code wurde mit einer guten Abdeckung geprüft und ich habe diesen Code in meinen eigenen Projekten ohne Probleme verwendet. Ich habe auch einen Großteil dieses Code und ähnlichen Code verwendet, der von mir in kommerziellen Projekten geschrieben wurde, oft mit (weichen) Echtzeitanforderungen, und habe keine Probleme. Verwenden Sie dies also in kommerziellen Projekten, solange Sie sich an die Lizenz halten.
Ich repariere Fehler und verbessere den Code bei Bedarf, mache jedoch keine Garantien dafür, wie oft dies geschieht. Ich gebe keine Garantie oder Unterstützung für Probleme, die während der Verwendung auftreten. Wenn Sie jedoch wirklich festgefahren sind, senden Sie mir eine E -Mail an die angegebene Adresse und wenn ich die Zeit habe, werde ich versuchen, das Problem zu helfen oder zu beheben, wenn es in meiner Macht dazu liegt, dies zu tun
Der Code wird unter Verwendung von Kommentaren im Doxygen -Stil kommentiert.
Für Nutzungsbeispiele empfehle ich den Unit -Testcode im Ordner /unittests /googletests.
Die Networking -Unit -Tests erfordern die Netzwerkkonnektivität und erwartet 2 Adapter -Setups, eines am 10.34.6.1/255.255.0.0 und eines unter 10.35.6.1/255.255.0.0. Dies können "virtuelle" Loop-Back-Adapter oder physische Netzwerkadapter sein, um Multicast-Gruppe zu testen, und UDP-Sendungen muss der Benutzer seine Firewalls und Sicherheitseinstellungen angemessen konfigurieren.
Weitere Informationen und Beispiele finden Sie im Wiki.