Visual C++
Microsoft Visual C++ ist ein System zur Entwicklung von Software in der Programmiersprache C++ unter dem Betriebssystem Windows von der Firma Microsoft.
Die Version 1.0 erschien 1993 für Windows 3.1. Microsoft Visual C++ ist z.Zt. entweder in Form der Entwicklungsumgebung Microsoft Visual Studio .NET, alleinstehend als Visual C++ .NET 2003 Standard oder als Visual C++ 2005 Express (englisch und deutsch) erhältlich.
Auch wenn der Aufruf von Compiler und Linker nach wie vor per Kommandozeileneingabe in einem Konsolenfenster möglich ist, bietet das System stattdessen eine grafische Benutzeroberfläche.
Das System erzeugt und verwaltet ein Programm, das man entwickelt, als ein so genanntes "Projekt", das aus einem Verzeichnisbaum mit verschiedenen Dateien besteht, unter anderem:
- Quellcode-Dateien (*.cpp)
- Header-Dateien (*.h)
- Ressourcen-Dateien (definieren Aussehen und Bestandteile der grafischen Benutzeroberfläche)
Von den zahlreichen Möglichkeiten, ein neues „Projekt“ anzulegen, sind vor allem drei relevant:
- Herkömmliche Programme in C oder C++, die in einem Konsolenfenster laufen, erstellt man als Win32-Projekt und wählt „Konsolenanwendung“.
- Windows-Programme mit einer grafischen Benutzeroberfläche erstellt man als Win32-Projekt. Hierbei muss die Windows-API direkt programmiert werden, was dem Programmierer große Freiheiten lässt. Da der Umfang der zur Verfügung stehenden Methoden, Strukturen und Konstanten enorm ist, kann man eigentlich nur arbeiten, wenn eine elektronische Referenz wie die MSDN zur Verfügung steht.
- Windows-Programme mit einer grafischen Benutzeroberfläche kann man auch als MFC-Projekt erstellen. MFC bedeutet Microsoft Foundation Classes und bezeichnet diejenige Klassenbibliothek, die mit dem wenigsten Aufwand die meisten vorgefertigten Komponenten zu benutzen gestattet, um zu gewährleisten, dass das eigene Programm den Standards üblicher Windows-Programme folgt.
Dem Benutzer bleibt bei einem MFC-Projekt verborgen, wie sein Programm als Ganzes aufgebaut ist, insbesondere, dass anstelle des früheren Hauptprogramms main() jetzt ein Windows-Hauptprogramm winmain() getreten ist. Dessen Quellcode liegt im Installationsverzeichnis von Visual C++ und wird für jedes Projekt durch die C++ typische Vererbung genutzt. Grundsätzlich fragt diese Funktion eine Hauptmeldeschleife immer wieder ab, ob ein Ereignis (z. B. Mausklick) eingetreten ist, auf das es reagieren kann.
Stattdessen erzeugt Microsoft Visual C++ als Ausgangsmaterial ein funktionsloses Programm mit allen dazu gehörenden Quellcode-, Header- und Resourcendateien. Der Benutzer kann dabei grob aus verschiedenen Kategorien auswählen und einige Details einstellen. Danach führt Microsoft Visual C++ den Benutzer mit Hilfe verschiedener Assistenten (Eingabeformularen) zu den Stellen, an denen er vorhandenen Quellcode ergänzen oder mit einem so genannten "Ressourcen-Editor" per Mausklick Steuerelemente in Dialogfelder einfügen muss.
Der Benutzer arbeitet dabei hauptsächlich mit folgenden Fenstern:
- In der Mitte und etwas größer sieht er entweder einen geöffneten Quellcode-Editor, wobei er mit Registerkarten zwischen verschiedenen zu editierenden Dateien umschalten kann, oder einen Dialogfeld-Editor, um per Mausklick Steuerelemente einzufügen, zu skalieren, zu verschieben und zu gestalten
- In dem sogenannten Arbeitsbereich-Fenster kann man mit drei Registerkarten zwischen folgenden Ansichten der Projektdaten umschalten:
- Die Projektansicht zeigt die Dateien (Quellcode, Header, Ressourcen usw.).
- Die Klassenansicht zeigt die Klassen, wobei eine Klasse eine Datenstruktur ist, die zusätzlich zu Daten auch Unterprogramme zum Manipulieren der eigenen Daten enthält. Da eine Klasse im Sinne einer hierarchischen Vererbung die Elemente der Basisklasse mit enthält, von der sie abgeleitet ist, kann man mit den aktuellen Version von Visual C++ in der Klassenansicht die Vererbungshierarchie bis hin zum Urahn aller Klassen, der Klasse CObject, zurückverfolgen. Die meisten Klassen sind bereits vorhanden, man fügt nur wenige eigene hinzu und verändert die jeweilige Basisklasse, aus der man eigene Klassen abgeleitet hat, nur wenig.
- Die Ressourcenansicht zeigt die Dialogfelder, Menüs und ähnliches, die man nicht durch das Editieren von Text, sondern grafisch mit der Maus gestaltet.
- Das Eigenschaftenfenster zeigt die Eigenschaften eines gerade ausgewählten Steuerelements im Form Designer. Man kann dort eine Zuordnung zwischen Ereignissen und Unterprogrammen, die auf Ereignisse reagieren, festlegen.
- Meist rechts befindet sich ein Vorrat an Steuerelementen für Dialogfelder, die von dort mit der Maus ins zu editierende Dialogfeld geschoben werden können
- Meist unten befindet sich ein Fenster, in dem konsolen-ähnlich die Meldungen des Compilers oder des Debuggers erscheinen.
Das Erlernen der MFC-Programmierung wird nicht grundsätzlich als trivial angesehen. Trotz der mitgelieferten, meist ausführlichen und ausreichenden Dokumentation wird häufig Literatur empfohlen, die das Überschauen der Grundlagen bedeutend vereinfacht. Obwohl ein MFC-Projekt auf den ersten Blick einfach erscheinen mag, wird für komplexere Aufgabenstellungen eine nicht geringe Einarbeitungszeit verlangt. Dies ist aber nicht unbedingt eine Eigenschaft der MFC, sondern allgemein fast jedes GUI-Systems. Allerdings erleichtert das Design der MFC das Erlernen nicht in allen Punkten, da sie aus heutiger Sicht in manchen Teilen unnötig komplex sind und nicht die vollen Fähigkeiten der Programmiersprache C++ nutzen; anstelle von Namensräumen werden zum Beispiel Präfixe verwendet, was gerade Anfänger leicht in Versuchung führt, ihren Code ebenso aufzubauen.
Das System ist als Ein- oder Mehrbenutzerlizenz erhältlich. Wenn der Arbeitgeber eine Einbenutzerlizenz erworben hat, ist es ausdrücklich erlaubt, dass man es zusätzlich zu Hause auf seinem privaten Notebook installiert und benutzt, allerdings nur solange man bei diesem Arbeitgeber beschäftigt ist (Quelle: telefonische Auskunft von Microsoft Deutschland).
Unter Windows XP Professional kann es vorkommen, dass sich Microsoft Visual C++ nicht mit Lotus Notes verträgt. Dieses Problem lässt sich umgehen, indem man ein separates Benutzerkonto nur für Microsoft Visual C++ und ohne Lotus Notes anlegt, mit Administratorrechten, und Microsoft Visual Studio .NET als dieser Benutzer installiert, also weder als Administrator noch unter dem normalen Benutzerkonto.
Die Versionen 2002, 2003 und 2005 von Visual C++ sind in der Lage, außer der MFC noch auf dem .NET-Framework basierende Projekte zu erstellen. Laut Microsoft ist die Unterstützung erst ab 2005 wirklich durchgängig gestaltet worden. Visual C++ 2005 verfügt im Vergleich zu den anderen Versionen über einen erweiterteten C++ Befehlssatz, der z.B. die Nutzung der "garbage collection", die für .NET Objekte typischerweise benutzt wird, vereinfachen soll. Aus Marketinggründen trugen die Versionen 2002 und 2003 das Kürzel .NET im Namen. Ab 2005 scheint sich Microsoft von dieser PR-Strategie abzuwenden. Visual C++ 2005 Express Edition kann direkt von Microsofts Webseite heruntergeladen und installiert werden. Diese Version unterstützt die MFC jedoch nicht. Die Lizenz der Express-Edition erlaubt es, entwickelte Programme kommerziell zu vertreiben. Aufgrund der immer größer werdenden Fangemeinde der Express-Editions (C++, Visual Basic, ...) hat Microsoft beschlossen, den Download der Express-Editionen dauerhaft kostenlos anzubieten.
Literatur
- George Shepherd, David Kruglinski: Inside Visual C++ .NET. Microsoft Press Deutschland, ISBN 3-86063-678-2
Weblinks
- Visual C++ 2005 Express – Die neueste Version von MS VC++ als einzeln verfügbares Produkt