Microsoft Visual C++ ist ein System zur Entwicklung von Software in der Programmiersprache C++ unter dem Betriebssystem Windows von der Firma Microsoft.
Microsoft Visual C++ ist z.Zt. entweder in Form der Entwicklungsumgebung Microsoft Visual Studio .NET, alleinstehend als Visual C++ 2003 Standard oder als Visual C++ 2005 Express (englisch) erhältlich.
Auch wenn der Aufruf von Compiler und Linker nach wie vor per Kommandozeileneingabe in einem Konsolenfenster möglich ist, bietet das System statt dessen 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 verwirrend vielen Möglichkeiten, ein neues so genanntes "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 er gar nicht zu sehen bekommt, und das in einer Hauptmeldeschleife immer wieder abfragt, ob ein Ereignis (z. B. Mausklick) eingetreten ist, worauf es reagieren muss.
Statt dessen 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
- Meist links oben befindet sich ein Fenster, in dem man mit Registerkarten zwischen dreierlei Ansichten des Projekts umschalten kann:
- 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 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 durchs Editieren von Text, sondern grafisch mit der Maus gestaltet.
- Meist links unten befindet sich das Eigenschaftenfenster mit den Eigenschaften dessen, was man gerade aktiviert hat. Man kann dort eine Zuordnung zwischen Ereignissen und Unterprogrammen, die auf Ereignisse reagieren, gestalten.
- 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 also 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 namespaces werden zum Beispiel Präfixe verwendet, was gerade Anfänger leicht in Versuchung stürzt, 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 zuhause 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.
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
- theForger's Win32 API Tutorial - Ein, für Einsteiger geeignetes, Tutorial zum Erlernen der Win-API-Programmierung in C++.
- Lernprogramm Visual C++ Ein Tutorial zum Erlernen der MFC-Programmierung.