Wie benutze ich ein Windows SDK mit Visual C++ Express?
Das Problem
Um die Funktionalitäten des Betriebssystems aus C++ heraus zu nutzen sollte man immer das aktuellste Software Development Kit installiert und referenziert haben. Visual C++ Express ermöglicht nur die Entwicklung von .NET Anwendungen aus der Standard Installation heraus. Um native C++ Anwendungen in Verbindung mit einem Platform SDK oder auch Windows SDK zu schreiben muss man noch einige Schritte tun um dies zu ermöglichen.
Die Lösung
Nachdem man sich das entsprechende SDK heruntergeladen hat muss man nun die Pfade in die Visual C++ 2005 Express aufnehmen. Hierzu öffnet man unter Tools Optionen den entsprechenden Optionen Dialog und trägt dann die Pfade für Executable Files, Include Files und Library Files ein.

Klicken Sie für eine Größere Darstellung auf das Bild
Damit hat man dem Compiler alle notwendigen Informationen mitgegeben. Nun benötigen wir noch für den Linker die entsprechenden Link-Libraries. Für die Link-Libraries gibt es in Visual C++ 2005 Express keinen Dialog. Um diese zu ergänzen öffnet man die Konfigurationsdatei des Win32 Templates für die Visual C++ 2005 Express Entwicklungsumgebung die man bei einer Standardinstallation (englisch) unter C:\Program Files\Microsoft Visual Studio 8\VC\VCProjectDefaults findet. Der Dateiname lautet corewin_express.vsprops. Hier werden die fehlenden Libraries ergänzt. Das folgende Snippet kann man sich heraus kopieren und verwenden.
<?xml version="1.0"?>
<VisualStudioPropertySheet ProjectType="Visual C++" Version="8.00" Name="Core Windows Libraries">
<Tool Name="VCLinkerTool" AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib
shell32.lib ole32.lib oleaut32.lib uuid.lib" />
</VisualStudioPropertySheet>
Um ein Win32 Projekt zu erzeugen wählt man das Win32 Console Application Template aus.

Klicken Sie für eine Größere Darstellung auf das Bild
Das Win32 Console Application Template ist leider noch nicht in der Lage Windows und DLL Projekttypen zu erzeugen wie man am Screenshot sieht. Beide Optionen sind ausgegraut.

Klicken Sie für eine Größere Darstellung auf das Bild
Der Wizard der durch den Projekttypen gestartet wird lässt sich anhand einer HTML Datei konfigurieren. Das Script das in dieser Datei hinterlegt ist steuert die Möglichkeiten die der Wizard anbietet. Es gibt eine Abfrage in diesem Skript ob sich er Wizard im Kontext von Visual C++ 2005 Express befindet. Die Datei befindet sich auf einer Standardinstallation (englisch) unter C:\Program Files\Microsoft Visual Studio 8\VC\VCWizards\AppWiz\Generic\Application\html\1033\AppSettings.htm. Man springt in die Zeile 441 um folgenden Code zu sehen.

Die zwei ausgegrauten Optionen lassen sich aktivieren in dem man den entsprechenden Source Code auskommentiert und die Datei speichert. Es gilt zu beachten das unter Windows Vista mit aktiviertem UAC der entsprechende Editor der die Änderung durchführt mit Administratoren Rechten gestartet werden sollte, sonst kann der Editor nicht die Datei zurückschreiben.

Wenn die Änderungen gespeichert wurden kann man sogleich die Auswirkungen am Wizard sehen und nun auch eine Windows Application bzw. DLL aus den Optionen wählen.

Klicken Sie für eine Größere Darstellung auf das Bild
Der Code
<?xml version="1.0"?>
<VisualStudioPropertySheet ProjectType="Visual C++" Version="8.00" Name="Core Windows Libraries">
<Tool Name="VCLinkerTool" AdditionalDependencies="kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib
shell32.lib ole32.lib oleaut32.lib uuid.lib" />
</VisualStudioPropertySheet>
corewin_Express.vsprops
Nächste Schritte
Einige Systemfunktionalität benötigen unter Umständen weitere Link Libraries. Diese wären ebenfalls einzutragen.