Versionswirrwarr



  • Ich muss leider gestehen dass ich mit den ganzen verschiedenen Versionen und Benamsungen der Microsoft Compiler/IDEs nicht so 100%ig durchsteige, liegt wohl auch mit daran dass ich mich mit M$-Compilern noch nicht habe herumschlagen müssen. Jetzt ist es aber soweit und ich benötige zumindest ein Stückweit Klarheit.

    Zuerst einmal sind da die Namen, mir ist bisher vor Augen gekommen:
    - Visual Studio
    - MFC
    - Visual C++
    - MSVC

    welche bedeuten das Gleiche, wo sind Unterschiede?

    Dann Versionsnummern:
    VC6, VC8, 2005er, 2008er, teils auch 2003 oder 2002

    Sind das verschiedene Versionen desselben Compilers oder verschiedene Compiler oder z.T. nur verschiedene Namen für ein und dieselbe Version?

    Wie siehts mit Standardkompatibilität der Versionen aus, ich weiß z.B. dass neuere Boost::Spirit-Versionen den VC6 nicht unterstützen (hat wohl einige templatebezogene Macken), außerdem war da mal was mit fehlender Umsetzung der alternativen Tokens (Standrard §2.5, z.B. die Keywords and, or etc.)



  • Visual Studio (VS) ist sowas wie das "MS Office für Programmierer".
    Da sind u.a. drin: Visual C++ (VC oder MSVC), Visual Basic, Visual C#...

    MFC ist die Klassensammlung von Microsoft: Die Microsoft Foundation Classes.
    CEdit, CDocument und sowas.

    Bei den Versionen bin ich allerdings auch nicht so fit. 😉



  • Die Versionen müssten eigentlich so aussehen (bitte korrigiert mich, wenn ich falsch liegen sollte):

    VC6 == VS 6.0
    VC7 == VS.NET (aka VS2002)
    VC7.1 == VS2003
    VC8 == VS2005
    VC9 == VS2008



  • Naja, das "Visual Studio 6" ist auch als "Visual Studio 98" bekannt, und das 2003er heisst ganz genau "Visual Studio .NET 2003".
    Ab dem 2005er wurde das ".NET" im Namen dann fallen gelassen.

    Dann gibt's noch die interne Compiler-Versionsnummer (die über das Makro _MSC_VER "abfragbar" ist):

    VC 6 -> _MSC_VER 1200
    VC 7 -> _MSC_VER 1300
    VC 7.1 -> _MSC_VER 1310
    VC 8 -> _MSC_VER 1400
    VC 9 -> _MSC_VER 1500

    Die MFC Versionen laufen netterweise mit dem Studio mit, also VS6 -> _MFC_VER 0x600, VS7 -> _MFC_VER 0x700 etc.
    Dummerweise heissen aber die DLLs von VS6 nicht MFC60*.dll sondern nach wie vor MFC42*.dll. Sehr verwirrend 🙂

    Also ja, wirrwarr, aber irgendwann gewöhnt man sich dran.



  • gut, danke für die Aufklärung 🙂


Anmelden zum Antworten