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++
- MSVCwelche bedeuten das Gleiche, wo sind Unterschiede?
Dann Versionsnummern:
VC6, VC8, 2005er, 2008er, teils auch 2003 oder 2002Sind 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 1500Die 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
