Visual Studio 2005 Express

Visual Studio 2005 ist für mich die Brücke zwischen Vergangenheit und Zukunft der Windows Software Entwicklung. Der dortige C++ Compiler (MSVC-8) kann noch Binärdateien für Windows NT 4 und Windows 98 erzeugen, die aber ebenso auf Windows 10 voll funktionsfähig sind.

Außerdem ist der Compiler halbwegs C++ 2003 konform und kann damit fast alles bauen, was ich im Alltag brauche.


Jede Express-Sprache mit eigener IDE

Während die Professional Ausgabe von Visual Studio 2005 eine einzige IDE für alle Sprachen von C++ über C# bis VB.NET bereitstellt, gingen die Express Editionen damals einen ganz anderen Weg:
Jede Sprache hatte ihr eigenes Installationspaket mit einer separaten IDE. Man konnte bzw. musste mehrere Express Produkte installieren, wenn man alle Sprachen nutzen wollte:

  • Visual C++ 2005 Express Edition
    für natives C++ oder C++/CLI
  • Visual C# 2005 Express Edition
    nur für C# Desktop App Entwicklung
  • Visual Basic 2005 Express Edition
    nur für VB.NET Desktop App Entwicklung
  • Visual Web Developer 2005 Express Edition
    für C# und VB.NET nur für ASP.NET Entwicklung
  • Visual J# 2005 Express Edition
    Java-Syntax für dotNET Desktop App Entwicklung

Microsoft hat die Downloads leider offline genommen, doch dank diverser privater Downloadseiten im Netz und archive.org findet man noch einige ISO-Dateien im Netz, die entweder eine einzelne Sprache oder alle gesammelt beinhalten:

http://archive.org/download/visual-studio-express-2005

Problem: Registrierung

Ärgerlich ist, dass nach der Installation einer Expression Edition diese nur 30 Tage funktioniert und man sich danach bei Microsoft kostenlos registrieren müsste um einen Lizenzschlüssel für die weitere Nutzung zu bekommen.

Heute funktioniert diese URL natürlich nicht mehr (wurde so vor 7 Jahren glaube ich eingestellt) und somit kann man offiziell mit diesen kostenlose Produkten nicht mehr arbeiten.

… außer …

man öffnet den Registry Editor und klickt sich durch bis zu: HKEY_CURRENT_USER\Software\Microsoft. Dort findet man Unterordner mit den Namen

  • VCExpress
  • VCSExpress
  • VBExpress
  • VWDExpress
  • VJSExpress

und darunter findet man im Ordner \8.0\Registration den Eintrag Params mit einem Hexadezimal-String.
Wenn man diesen magischen String durch eine simple “1” ersetzt, kann man die IDE auch ohne offiziellen Registrierungsschlüssel starten.

Naja … wenigstens ein einfacher “Hack” um damit arbeiten zu können.

C++ ohne WinAPI?

Visual C++ 2005 Express kommt nur mit der C-Runtime und der STL. Die Windows API Header wie auch Link-Libraries fehlen. Und ebenso abgängig sind ATL und die MFC. Da wollte Microsoft wohl wieder Geld mit der Pro-Edition verdienen.

Aber auch hier gibt es einen kostenlosen Weg: Man installiert das kostenlose Platform-SDK aus der damaligen Zeit. Das Platform SDK 2005 für Windows Server 2003 SP1 ist aktuell noch für MSDN Subscribers als Download verfügbar … wer weiß wie lange noch. Das letzte SDK “Platform SDK 2006 for Server 2003 R2” kann ich im Netz leider nicht mehr finden. Zum Glück ist es seit damals bei mir gesichert.

Nach der Installation müssen die Pfade der Header und Link-Libraries noch gesetzt werden. Das geschieht im Menü unter Tools - Options und im Dialog unter Projects and Solutions - VC++ Directories. Dort kann man (leider nur) für die Win32 Plattform die Verzeichnisse hinzufügen:

  • Include files
    • C:\Program Files\Microsoft Platform SDK...\Include
  • Library files
    • C:\Program Files\Microsoft Platform SDK...\Lib

Das sollte reichen, damit man native Windows Apps durchkompiliert bekommt. ATL und MFC sind theoretisch beim SDK auch dabei, nur habe ich die noch nie in der Express Edition ausprobiert. Mit etwas Glück reicht es vielleicht aus die entsprechenden Unterverzeichnisse \Include\atl und \Include\mfc, sowie die \Lib Unterverzeichnisse hinzufügen.

Fazit

Mit VS2005 hat mein C++ Leben so richtig begonnen. Das Einrichten der Express Version war für mich damals anfangs ein Alptraum. Weil ich von VB und C# gewohnt war, dass alles Out-of-the-box läuft, während das “dumme” C++ immer Extraaufwände erzeugte.

Doch nachdem ich diese Schritte auswendig gelernt hatte, konnte ich mich entspannt in die Sprache verlieben.

Heute zieht mich alle 6 Monate mal das GATE Projekt in die gute alte Zeit zurück, wenn überprüft werden muss, ob eh noch alles mit den alten Compilern kompatibel ist.
… und das wird hoffentlich auch in Zukunft so weiter gehen.

Über 13 Jahre liegt mein Erstkontakt schon zurück.
Wahnsinn wie die Zeit vergeht!


Wenn sich eine triviale Erkenntnis mit Dummheit in der Interpretation paart, dann gibt es in der Regel Kollateralschäden in der Anwendung.
frei zitiert nach A. Van der Bellen
... also dann paaren wir mal eine komplexe Erkenntnis mit Klugheit in der Interpretation!