Universität Bayreuth
Mathematisches
Institut
Einleitung
Erste Schritte
Mail und News
Drucken
KDE
LaTeX/TeX
Linksammlung
Linuxtools
Netzwerk
Programmieren
Windows
X Window
Anträge
Kontakt
|
Programmieren
ergänzende Libraries zu C/C++
Hier wird eine Übersicht über einige wichtige
Libraries gegeben, die C/C++ ergänzen.
Libraries des GCC/von Linux
Libraries zur Cursorsteuerung
GUI-Libraries
platformabhängige GUI-Libraries
platformübergreifende GUI-Libraries
Grafik-Libraries
Wo geht's zurück???
Ein Bildschirmlöschen bei (normalen) Anwendungen (ohne Fenster)
ist in C/C++ nicht standardisiert. Ebenso nicht wie z.B. ein Springen zu einer
Cursorposition in einer bestimmten Zeile/Spalte des Shellfensters. Beides
muss man unter Unix mit der Curses-Bibliothek lösen. Die Library
"NCurses" ist dabei eine Weiterentwicklung der "Curses"-Library.
Der Aufbau von GUIs (GUI = graphical user interface, d.h. grafische
Benutzeroberfläche) ist in C/C++ nicht standardisiert. Die meisten
(kommerziellen) Windows-Compiler bieten keine Unterstützung
platformunabhängiger GUI-Bibliotheken, sondern verwenden meist die
MFC. Unter Linux sind die grundlegenden Bibliotheken die von X Window
bzw. von Motif(-Varianten).
MFC (Microsoft Foundation Classes)
|
|
MFC-Homepage
alternativ:
MFC-Homepage
|
(Microsoft)
MFC ist die von Microsoft benutzte Library für GUIs,
die in allen Windows-Betriebssystemen verwendet wird.
|
|
Dokumentationen:
About the MFC,
MFC Class Library Reference
MFC Class Library Overview
|
(Microsoft)
|
|
MFC
Technical Notes
|
(Microsoft)
|
|
Visual C++/MFC
Tutorials
|
(Microsoft)
|
|
MFC-Tutorials
|
(DevCentral)
|
OWL (Object Windows Library)
|
|
OWL Tutorial
|
(Borland)
OWL ist/war eine objektorientierte GUI-Library von
Borland, die vom
Borland C++-Compiler unterstützt wurde.
|
|
OWL NExt
|
(Yuri Bidus)
Weiterentwicklung der OWL
|
|
OWL HOW
|
(Christopher Kohlhoff)
Informationen zur OWL
|
X Window
|
|
X.Org-Homepage
|
(X.Org Foundation)
X Window (kurz: X oder X11)
ist die Standardumgebung unter Linux/Unix (auf dem dann die
verschiedensten Desktops wie
Gnome,
KDE,
CDE (CDE = Common
Desktop Environment), ... aufsetzen).
Es stellt auch das
X Protokoll
für die Client-Server-Kommunikation zwischen Anwendung (X Client)
und Anzeige (X Server) dar.
X Window System ist ein Handelszeichen von
The Open Group.
|
|
Library: X Athena Widget Set (=Xaw):
Manualseiten
C Language Interface
|
(XFree86 Project, Inc.
bzw. Hungry Programmers)
Xaw ist eine Library mit Widgets basierend auf der
Xt-Library (Xt = X Toolkit Intrinsics).
|
|
Library: X Athena
Widget 3D Set (Xaw3D)
|
(XFree86 Project, Inc.)
Xaw3D ist eine Variante der Xaw-Library, die ein 3D-Aussehen der
Xaw-Widgets realisiert. Autor: Kaleb S. Keithley
|
|
Library: X Athena
Widget 95 Set (Xaw95)
|
(XFree86 Project, Inc.)
Xaw95 ist eine Variante der Xaw-Library, die ein Aussehen der
Xaw-Widgets wie bei Windows 95 realisiert.
Autor: Eddie Hiu-Fung, Lau; Download:
ibiblio
(früher: SunSITE der University of North Carolina - Chapel
Hill),
Gallery of Free
Software Packages for Unix,
|
|
Library: Xlib
|
(Hungry Programmers)
|
|
Library: Xmu
|
(Hungry Programmers)
Xmu ist eine Sammlung nützlicher Funktionen, die für
verschiedenste Anwendungen und Widgets gebraucht werden.
Die Xaw-Library (Athena Widgets) benötigen diese Library.
|
|
Library: X Toolkit (Xt = X Toolkit):
C Language
Interface,
Programming Manual
|
(Hungry Programmers)
|
|
X Window System User's Guide
|
(Hungry Programmers)
|
|
X Window System Programmer's Guide
|
(Hungry Programmers)
|
|
X Window Guide
|
(Jeff Pitchers; Link vom
Linux Documentation Archive,
Karel Zak)
|
|
X FAQ
|
(David Lewis)
|
|
Xt FAQ (X Toolkit
Intrinsics)
|
(Peter Ware)
|
|
X Widget FAQ
alternativ:
X Widget FAQ
|
(John L. Cwikla)
|
|
X on
Intel-based Unix FAQ
|
(Steve Kotsopoulos)
|
|
Buchtipps
zum X Window-System
|
(Link vom Linux Documentation Archive,
Karel Zak)
|
|
XFree86
|
(XFree86 Project, Inc.)
OpenSource-Implementierung des X Window-Systems für
Unix/Linux, Mac OS X (über Darwin), ...
|
|
Broadway/Xweb Homepage
|
(X.Org Foundation)
vgl. auch Broadway Plugin
für Netscape
|
Motif
|
|
Motif-Homepage
|
(The Open Group)
Motif ist ein unter Unix-Workstations verbreitetes GUI-Toolkit
und ist durch IEEE 1295 standardisiert. Es gibt
mittlerweile auch weitgehende OpenSource-Implementierungen.
CDE (CDE = Common
Desktop Environment) verwendet Motif als Basis für sein
GUI-Toolkit.
|
|
Motif
2.1 Data Sheet
|
(The Open Group)
|
|
SCO Premier
OSF/Motif 1.2.5:
User's Guide,
Style Guide,
Programmer's Guide,
Programmer's Reference
|
(Princeton Plasma Physics Laboratory)
|
|
Library: Xmt (Motif Tools)
|
(Jeffrey L. Franks)
Xmt ist eine Motif-Library, die von David Flanagan entwickelt
wurde.
|
|
Motif Tutorial
|
(Link vom Linux Documentation Archive,
Karel Zak)
|
|
Motif FAQ
|
(Ken Lee)
|
|
Open
Group Desktop Technologies FAQ: Using Motif 2.0 & CDE
|
(The Open Group)
|
|
Buchtipps
der OpenGroup zu Motif
|
(The Open Group)
|
|
Motifdeveloper (MW3)
|
|
|
MotifZone
|
Integrated Computer Solutions, Inc.
|
Open Motif
|
|
Open Motif-Homepage
|
(The Open Group)
Open Motif ist eine unter der Open Group Public License
verbreitete Motif-Version
(eine Art OpenSource-Lizenz) von "The Open Group",
die dieselbe Funktionalität und Sourcecode hat wie
Motif selbst.
|
|
Open
Motif Data Sheet
|
(The Open Group)
|
|
Open
Motif FAQ
|
(The Open Group)
|
|
Archive der
Open Motif-Mailinglisten
|
(The Open Group)
|
LessTif
|
|
LessTif-Homepage
|
(Hungry Programmers)
LessTif ist die unter der GNU Lesser General Public
License (LGPL) veröffentlichte Variante von
Motif.
Es läuft unter Unix/Linux (und sogar mit Cygwin unter Windows).
|
|
LessTif-Dokumentation
|
(Hungry Programmers)
|
|
LessTif FAQ
|
(Hungry Programmers)
|
Es gibt aber einige GUI-Bibliotheken, die platformunabhängiger sind
wie z.B. GTK+ oder Qt.
GTK+ (The Gimp Toolkit)
|
|
GTK+-Homepage
Gimp ist ein mächtiges
Zeichenprogramm unter Linux (sogar Windows)
|
(GTK+-Team)
GTK+ ist ein platformunabhängiges Toolkit, um
GUIs zu erzeugen und bietet eine Unterstützung der Programmiersprachen
C/C++, Perl und Python. GTK+ ist freie Software und Teil des
GNU-Projekts. Es basiert auf den
Libraries GLib, GDK, Pango und ATK. Es ist wesentlicher
Bestandteil des Gnome-Desktops.
|
|
GTK+ Reference Manual
|
(Gnome Project,
Gnome = ein freier Linux-Desktop)
|
|
GTK+ 2.0 Tutorial
|
(Tony Gale, Ian Main und das GTK+-Team)
|
|
GTK+ FAQ
|
(GTK+-Team)
|
|
GTK+ and GIMP for Windows
|
(Tor Lillqvist)
|
|
GTK+ Dokumentationen und Buchtipps
|
(GTK+-Team)
|
|
Library:
ATK Reference Manual
|
(Gnome Project)
in GTK+ integrierte und verwendete Library,
die eine Reihe von Interfaces festlegt, die Unterstützung
für Bildschirmlesegeräte, Vergrößerer und
alternative Eingabegeräte bietet
|
|
Library:
GDK Reference Manual
|
(Gnome Project,
GDK = GTK+ Drawing Kit, in GTK+ integrierte und verwendete Library,
Wrapper für Xlib-Funktionsaufrufen)
|
|
Library:
GLib Reference Manual
|
(Gnome Project,
GLib = Gimp Library, in GTK+ und GDK integrierte und verwendete
low-level-Library,
die nützliche Funktionen und Datentypen bereitstellt)
|
|
Library:
Pango Reference Manual
|
(Pango Project)
in GTK+ integrierte und verwendete Library,
die das Layout und das Anzeigen von Text übernimmt
(mit Betonung der Internationalisierung)
|
Qt
|
|
Qt-Homepage
|
(Trolltech)
Qt ist eine platformübergreifendes Framework für
C++-Anwendungsentwicklung (GUIs und 2D-
und 3D-Grafik); unterstützt werden momentan
Windows-Varianten, Unix mit X11 (X Window), MacIntosh mit
Mac OS X und embedded Linux. Qt bildet auch die Basis vom
populärem KDE-Desktop
für Linux.
Qt ist in einer kommerziellen
Version mit Support (genannt Qt Enterprise Edition bzw.
Qt Professional Edition) und in einer
freien
Version z.B. unter Linux/X11 (genannt Qt Free Edition) verfügbar.
|
|
Qt-Dokumentation
(für die freien Versionen
3.3,
3.2 und
2.3)
|
(Trolltech)
|
|
FAQs zu Qt und
weitere Trolltech-Produkte
(General
FAQ,
Simple
FAQ,
Technical
FAQ,
Qt/Free
Edition FAQ)
|
(Trolltech)
|
|
Buchtipps zu Qt
|
(Trolltech)
|
|
Qtforum
|
(Qtforum-Team)
|
KDE (K Desktop Environment)
|
|
KDE-Homepage
|
(KDE e.V.)
KDE ist einerseits ein Open Source-Desktop für Linux und
Unix-Workstations und bietet andererseits ein
modernes Framework
für die Anwendungsentwicklung unter Linux/Unix
(GUIs, Internationalisierung, Netzwerktransparenz, DCOP Messaging
als Protokoll für Client-Client-Kommunikation,
KParts für Komponentenobjektmodell, KHTML als
HTML 4.0-kompatible Rendering-Maschine, ...). Mit KDE wurden eine
Vielzahl von KDE-Applikationen
wie z.B. Konqueror,
KOffice,
KDevelop, ... entwickelt.
KDE verwendet als Basis die Qt-Library.
|
|
KDE Library References and APIs
|
(KDE e.V.)
|
|
KDE API References:
KDE 3.2 API,
KDE 3.1 API,
KDE 3.0 API,
KDE 2.2 API
|
(KDE e.V.)
|
|
KDE Dokumentationen
|
(KDE e.V.)
|
|
KDE Quick Start Guide
|
(KDE e.V.)
|
|
KDE User's Guide
|
(KDE e.V.)
|
|
KDE for System Administrators
|
(KDE e.V.)
|
|
KDE-forum
|
|
|
KDE FAQs
|
(KDE e.V.)
|
|
Buchtipps zu KDE
|
(KDE e.V.)
|
|
K Developer's Corner
|
(KDE e.V.)
|
|
KDE Free Qt Foundation
|
(KDE e.V.)
Zusammenschluss vom KDE-Projekt und Trolltech,
um die freie Verfügbarkeit der
Qt-Library
zuzusichern
|
V C++ GUI Framework
|
|
V Homepage
|
(Object Central,
Bruce E. Wampler)
V ist ein portables C++ GUI-Framework für Windows, X und OS/2.
V ist Freeware und steht unter der GNU Lesser General Public
License (LGPL).
V wurde verwendet, um z.B. die
V-IDE
(IDE für G++ und Java) zu entwickeln.
weitere Download-Adresse:
Sourceforge-Projekt
"vgui"
|
|
V
Refernce Manual
|
(Object Central,
Bruce E. Wampler)
|
|
V
Tutorial
|
(Object Central,
Bruce E. Wampler)
|
|
V User
Guide
|
(Object Central,
Bruce E. Wampler)
|
|
V FAQ
|
(Object Central,
Bruce E. Wampler)
|
|
V IDE
|
(Object Central,
Bruce E. Wampler)
IDE für GNU G++ und Java
|
Die Erzeugung von 2D- oder 3D-Grafiken
ist in C/C++ nicht standardisiert.
OpenGL
|
|
OpenGL
Homepage
|
(OpenGL Architrecture Review Board, u.a. mit
Apple, Dell, HP, IBM, Intel, Matrox, SGI, Sun)
OpenGL (aktuelle Version)
ist eine sehr verbreitete 2D-/3D-Grafiklibrary, die in
vielen Grafikkarten sogar hardwarebeschleunigt unterstützt
wird. OpenGL wird unterstützt von Windows-Betriebssystemen,
Apple Mac OS und X Window-Systemen unter Unix
SGI stellt eine
Open Source-Beispielimplementierung
von OpenGL bereit
(vgl. die OpenGL
Sample Implementation FAQ).
|
|
OpenGL
& Utility Library Spezifikationen
|
(OpenGL Architrecture Review Board)
inkl. OpenGL 1.1-1.5, GLUT 3, GLX, GLU
|
|
OpenGL
"Bluebook" (OpenGL 1.0 Reference Manual)
|
(OpenGL Architrecture Review Board)
Library, die die Interaktion von X Window und OpenGL
gewärleistet und die OpenGL für Remote Rendering mit dem
X Protokoll realisiert
|
|
Library:
GLU (OpenGL Utility Library)
|
(OpenGL Architrecture Review Board)
Library, die u.a. Texturen von einem Ausgangsbild herstellt,
Bildschirmkoordinaten umrechnet und quadratische Oberflächen
und NURBS zeichnen kann
|
|
Library:
GLUT (OpenGL Utility Toolkit)
|
(OpenGL Architrecture Review Board)
Library, die ein platformunabhängiges Toolkit realisiert,
um OpenGL-Programme zu schreiben (vgl.
GLUT
3 API)
Library unterstützt C/C++, FORTRAN und Ada sowie
Unix (vorcompilierte Library erhältlich für SGI, Solaris
und Windows)
|
|
Library:
GLX (OpenGL Unix Implementation)
|
(OpenGL Architrecture Review Board)
Library, die die Interaktion von X Window und OpenGL
gewärleistet und die OpenGL für Remote Rendering mit dem
X Protokoll realisiert
SGI hat eine
OpenSource-Version
von GLX entwickelt.
|
|
OpenGL Datasheet
|
(SGI)
|
|
Dokumentation zu
OpenGL
|
(OpenGL Architrecture Review Board)
|
|
OpenGL FAQs für
Entwickler:
(Getting
Started FAQ,
Technical
FAQ,
GLUT
FAQ)
|
(OpenGL Architrecture Review Board)
|
|
SGI OpenGL FAQ
|
(SGI)
|
|
OpenGL Tutorial
|
(Link vom Linux Documentation Archive,
Karel Zak)
|
|
Buchtipps zu OpenGL
|
(OpenGL Architrecture Review Board)
|
|
SGI OpenGL Homepage
|
(SGI)
|
Mesa
|
|
Mesa-Homepage
|
(Mesa-Projekt)
Mesa ist eine 3D-Grafik-Library, die die OpenGL-Spezifikation
als OpenSource-Implementierung realisiert (vgl.
genauere Lizenzbestimmungen).
Sie unterstützt über
DRI (DRI = Direct Rendering
Infrastructure) Hardwarebeschleunigung
von Grafikkarten. Unterstützt werden bevorzugt Unix/X11-Systeme,
aber u.a. auch für Amiga, Apple, OS/2, Windows, ... werden
Treiber entwickelt.
|
|
Mesa FAQ
|
(Mesa-Projekt)
|
Open Inventor
|
|
Homepage
OSS-Projekt
(OSS = Open Source at SGI)
|
(SGI)
Open Inventor ist ein objektorientiertes 3D-Toolkit, das auf
OpenGL basiert.
(inkl. 3D-Szenen, 3D-Objekten, ...)
|
|
FAQs:
Open
Inventor General FAQ,
Open
Inventor Technical FAQ,
SGI
Inventor FAQ
|
(SGI)
|
DirectX
|
|
DirectX-Homepage
|
(DirectX Organization)
DirectX ist eine moderne Library für Multimedia-Anwendungen
(insbes. 2D- und 3D-Grafikunterstützung) für
Microsoft-Betriebssysteme. Viele Grafikkarten unterstützen
diese Library hardwarebeschleunigt.
|
|
Microsoft DirectX
Developers Homepage
|
(Microsoft)
|
|
Programming
DirectX with C/C++
|
(Microsoft)
|
|
Microsoft
DirectX 9 Developer FAQ
|
(Microsoft)
|
SDL (Simple DirectMedia Layer)
|
|
SDL-Homepage
|
(Sam Latinga
und andere)
SDL ist eine freie plattformübergreifende
Multimedia-Library (API) für LowLevel-Zugriff auf
Audio, Keyboard, Mouse, Joystick, 3D-Hardware über OpenGL,
2D-Video-Framebuffer, ... . Sie ist in C geschrieben und
unterstützt C++ und durch spezielle Bindings auch andere
Programmiersprachen wie Java, Ada, Perl, PHP, Python, ... .
Lizenz: GNU Lesser General Public License (LGPL)
|
|
SDL-Library Documentation
|
(Sam Latinga
und andere)
|
VTK (Visualization ToolKit)
|
|
VTK-Homepage
|
(Kitware Inc.)
VTK ist eine OpenSource-Library für 3D-Grafik in C++,
die aber über Interfaces auch Tcl/Tk, Java und Python
realisiert.
|
|
VTK Dokumentationen:
aktuelle VTK-Version,
VTK 4.2,
VTK 4.0)
|
(Kitware Inc.)
|
|
VTK User's Guide
|
(Kitware Inc.)
|
|
VTK FAQ
|
(Kitware Inc.)
|
|
Archiv
der VTK-Mailingliste
|
(Kitware Inc.)
|
|