Microsoft Visual C++ är en integrerad utvecklingsmiljö och kompilatorserie från Microsoft som främst används för utveckling i C och C++. Produkten ingår i Visual Studio-familjen och riktar sig till utvecklare som bygger både inbyggda (native) och hanterade (managed) program. Visual C++ innehåller verktyg för redigering, kompilering, felsökning och paketering och används av både kommersiella program och öppen källkodsprojekt.

Översikt

  • IDE och verktyg: Integrerat utvecklingsmiljö (IDE) med kodredigerare, projekt- och lösningshantering, grafiska designers och felsökare.
  • Komponenter: MSVC-kompilatorn, länkaren, felsökaren (debugger), och standardbibliotek för C/C++.
  • Redistributables: Många Windows-program kräver att rätt version av Visual C++-körningstidsbiblioteket (vanligtvis kallat "Visual C++ Redistributable") är installerad för att fungera korrekt.

Historia och utveckling

Produkterna som blev Visual C++ började som separata C-kompilatorer från Microsoft under namnet Microsoft C/C++. Den första versionen som bar namnet Microsoft Visual C++ lanserades officiellt i februari 1993.

Under 1990- och 2000-talen utvecklades Visual C++ för att stödja fönsterapplikationer (via MFC—Microsoft Foundation Classes) och ActiveX/COM-utveckling (via ATL). Genom åren har utgåvorna varierat mellan fristående Express-versioner, kommersiella Professional/Enterprise-utgåvor och den fria Community-utgåvan som riktar sig till enskilda utvecklare och små organisationer.

Utgåvor och licensiering

  • Community: Gratisversion med bred funktionalitet för individuella utvecklare, utbildning och små organisationer.
  • Professional/Enterprise: Betalda utgåvor med avancerade teamfunktioner, stöd och prestandaverktyg.
  • Express (historiskt): Lättviktiga fria utgåvor som Microsoft tidigare erbjöd; dessa har successivt ersatts av Community-utgåvan.

Viktiga funktioner

  • MSVC-kompilatorn: Optimeringar för Windows-plattformen och stöd för olika C++-standarder.
  • Felsökning: Integrerad felsökare för att analysera körningstidsfel, minnesläckor och prestandaproblem.
  • Bibliotek och ramverk: Stöd för MFC, ATL, Windows API samt möjligheter att skapa .NET-kompatibla komponenter med C++/CLI.
  • Byggverktyg: Projektfiler, MSBuild-integration och verktyg för paketdistribution.

Visual C++ och körningstidsbibliotek

Många tredjepartsprogram som är byggda med Visual C++ kräver att motsvarande Visual C++ Redistributable är installerat på måldatorn. Dessa paket innehåller delar av C-runtime och andra binära beroenden som inte alltid distribueras med programmet.

Standardstöd och kompatibilitet

Historiskt sett låg MSVC efter andra kompilatorer när det gäller stöd för modern C- och C++-standard, särskilt för vissa C99-funktioner. Under 2010-talet förbättrades stöd för C99-funktioner successivt; betydande förbättringar infördes runt 2013–2015.

  • C-standarder: MSVC implementerade under 2010-talet många utvalda C99-funktioner och vidareutvecklade stöd för senare delar av C-standarden. Fullständig och formell täckning av alla C11-funktioner har varierat mellan versioner, och arbete med utökad stöd för C-standarden pågår fortfarande.
  • C++-standarder: Visual C++ har under senare år fått omfattande stöd för C++11, C++14, C++17 och många funktioner från C++20. Implementeringen av nyare C++-funktioner fortsätter i aktuella Visual Studio-utgåvor.

Användningsområden

  • Utveckling av högt presterande skrivbordsapplikationer för Windows
  • Spelutveckling och grafikprogrammering
  • Systemnära programvara och drivrutiner (native kod)
  • Portningar av befintlig C/C++-kod till Windows-plattformen

Vem använder Visual C++?

Visual C++ används av professionella programmerare, företag och hobbyutvecklare som bygger native Windows-program. Verktyget är särskilt vanligt i sammanhang där integration mot Windows API eller hög prestanda är viktiga krav.

Sammanfattning

Visual C++ är en central del av Microsofts utvecklingsverktyg för C och C++. Det kombinerar en kommersiellt utvecklad kompilator med ett omfattande utvecklingsmiljö och ett ekosystem av körningstidsbibliotek. Stödet för moderna C- och C++-standarder har förbättrats över tid, och Visual C++ fortsätter att uppdateras i takt med nya språkfunktioner och plattformsbehov.