Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
U kunt de kwaliteit van uw toepassing verbeteren door regelmatig codeanalyse uit te voeren op C- of C++-code. Codeanalyse kan u helpen bij het vinden van veelvoorkomende problemen en schendingen van goede programmeerpraktijken. En het vindt defecten die moeilijk te vinden zijn door middel van testen. De waarschuwingen verschillen van compilerfouten en waarschuwingen: er wordt gezocht naar specifieke codepatronen die bekend zijn om problemen te veroorzaken. Dat wil gezegd, code die geldig is, maar nog steeds problemen kan maken, voor u of voor andere personen die uw code gebruiken.
Regelsets voor een project configureren
Open in Solution Explorer het snelmenu voor de projectnaam en kies Eigenschappen.
Kies desgewenst in de lijsten Configuratie en Platform de buildconfiguratie en het doelplatform.
Als u codeanalyse wilt uitvoeren telkens wanneer het project wordt gemaakt met behulp van de geselecteerde configuratie, schakelt u het selectievakje Codeanalyse in build inschakelen in. U kunt codeanalyse ook handmatig uitvoeren door het menu Analyseren te openen en vervolgens Codeanalyse uitvoeren opProjectName of Codeanalyse uitvoeren in bestand te kiezen.
Kies de regelset die u wilt gebruiken of maak een aangepaste regelset. Als u LLVM/clang-cl gebruikt, raadpleegt u Het gebruik van Clang-Tidy in Visual Studio om Clang-Tidy analyseopties te configureren.
Standaardregelsets voor C/C++
Visual Studio bevat deze standaardsets met regels voor systeemeigen code:
| Regelset | Beschrijving |
|---|---|
| Rekenkundige regels voor C++ Kerncontrole | Met deze regels worden controles afgedwongen die betrekking hebben op rekenkundige bewerkingen uit de C++-kernrichtlijnen. |
| Regels voor C++ Kerncontrolegrens | Met deze regels wordt het grenzenprofiel van de C++-kern-richtlijnen afgedwongen. |
| C++ Basiscontroleklasseregels | Met deze regels worden controles afgedwongen die betrekking hebben op klassen uit de C++-basisrichtlijnen. |
| C++ Basis Gelijktijdigheidsregels | Met deze regels worden controles afgedwongen die betrekking hebben op gelijktijdigheid van de C++-kernrichtlijnen. |
| C++ Core Check Const Rules | Deze regels dwingen const-gerelateerde controles af uit de C++-basisrichtlijnen. |
| C++ Basiscontroledeclaratieregels | Met deze regels worden controles afgedwongen die betrekking hebben op declaraties uit de C++-kernrichtlijnen. |
| C++ Core Controle Regels voor Enumeraties | Met deze regels worden enum-gerelateerde controles van de C++ Core Guidelines afgedwongen. |
| Experimentele regels voor C++ Kerncontrole | Deze regels verzamelen enkele experimentele controles. Uiteindelijk verwachten we dat deze controles worden verplaatst naar andere regelsets of volledig worden verwijderd. |
| C++ Kerncontrolefunctieregels | Met deze regels worden controles afgedwongen die betrekking hebben op functies uit de C++-kernrichtlijnen. |
| C++ Core Check GSL-regels | Met deze regels worden controles afgedwongen die betrekking hebben op de richtlijnenondersteuningsbibliotheek van de C++-kernrichtlijnen. |
| Levensduurregels voor C++ Core Check | Met deze regels wordt het levensduurprofiel van de C++-kernrichtlijnen afgedwongen. |
| Aanwijzer voor C++ Kerncontrole | Met deze regels worden controles voor resourcebeheer afgedwongen die zijn gerelateerd aan owner<T> de C++-basisrichtlijnen. |
| C++ Kerncontrole Ruwe Pointerreglementen | Met deze regels worden controles voor resourcebeheer afgedwongen die betrekking hebben op onbewerkte aanwijzers uit de C++-kernrichtlijnen. |
| C++ Kerncontroleregels | Met deze regels wordt een subset van de controles afgedwongen uit de C++-kernrichtlijnen. Gebruik deze regelset om alle C++-kerncontroleregels, met uitzondering van de enum- en experimentele regelsets, op te nemen. |
| Regels voor gedeelde aanwijzer voor C++ Kerncontrole | Met deze regels worden controles voor resourcebeheer afgedwongen die betrekking hebben op typen met gedeelde pointer-semantiek uit de C++-basisrichtlijnen. |
| C++ Core Check-regels voor STL | Met deze regels worden controles afgedwongen die betrekking hebben op de C++-standaardbibliotheek uit de C++-basisrichtlijnen. |
| C++ Kerncontrolestijlregels | Met deze regels worden controles afgedwongen die betrekking hebben op het gebruik van expressies en instructies uit de C++-kernrichtlijnen. |
| C++ Kerncontroletyperegels | Met deze regels wordt het typeprofiel van de C++-kernrichtlijnen afgedwongen. |
| C++ Core Check Unieke Wijzerregels | Met deze regels worden controles voor resourcebeheer afgedwongen die betrekking hebben op typen met unieke semantiek van de C++-kernrichtlijnen. |
| Regels voor gelijktijdigheidscontrole | Deze regels dwingen een set Win32 gelijktijdigheidspatrooncontroles af in C++. |
| Gelijktijdigheidsregels | Voegt gelijktijdigheidsregels van C++ Kernrichtlijnen toe aan regels voor gelijktijdigheidscontrole. |
| Systeemeigen Microsoft-minimumregels | Deze regels richten zich op de meest kritieke problemen in uw systeemeigen code, met inbegrip van mogelijke beveiligingsgaten en toepassingscrashes. U wordt aangeraden deze regelset op te nemen in een aangepaste regelset die u maakt voor uw systeemeigen projecten. |
| Systeemeigen door Microsoft aanbevolen regels | Deze regels richten zich op de meest kritieke en veelvoorkomende problemen in uw systeemeigen code. Deze problemen omvatten mogelijke beveiligingsgaten en toepassingscrashes. U wordt aangeraden deze regelset op te nemen in een aangepaste regelset die u maakt voor uw systeemeigen projecten. Deze regelset is ontworpen om te werken met de Visual Studio Professional-editie en hoger. Het bevat alle regels in Systeemeigen Minimumregels van Microsoft. |
Visual Studio bevat deze standaardsets met regels voor beheerde code:
| Regelset | Beschrijving |
|---|---|
| Microsoft Basic Correctness Rules | Deze regels richten zich op logische fouten en veelvoorkomende fouten die zijn gemaakt in het gebruik van framework-API's. Neem deze regelset op om de lijst met waarschuwingen die worden gerapporteerd door de minimaal aanbevolen regels uit te breiden. |
| Richtlijnen voor Microsoft Basic Design | Deze regels richten zich op het afdwingen van best practices om uw code gemakkelijk te begrijpen en te gebruiken. Neem deze regelset op als uw project bibliotheekcode bevat of als u aanbevolen procedures wilt afdwingen voor eenvoudig onderhoudbare code. |
| Uitgebreide juistheidsregels van Microsoft | Deze regels breiden uit op de basisregels voor correctheid om de gerapporteerde logica- en frameworkgebruiksfouten te maximaliseren. Er wordt extra nadruk gelegd op specifieke scenario's zoals COM-interoperabiliteit en mobiele toepassingen. Overweeg deze regelset op te nemen als een van deze scenario's van toepassing is op uw project of om meer problemen in uw project te vinden. |
| Regels voor uitgebreide ontwerprichtlijnen van Microsoft | Deze regels zijn gebaseerd op de basisregels voor ontwerprichtlijnen om de gerapporteerde problemen met bruikbaarheid en onderhoud te maximaliseren. Er wordt extra nadruk gelegd op naamgevingsrichtlijnen. Overweeg deze regelset op te nemen als uw project bibliotheekcode bevat of als u de hoogste standaarden wilt afdwingen voor het schrijven van onderhoudbare code. |
| Microsoft Globalization Rules | Deze regels richten zich op problemen die voorkomen dat gegevens in uw toepassing correct worden weergegeven wanneer ze worden gebruikt in verschillende talen, landinstellingen en culturen. Neem deze regelset op als uw toepassing is gelokaliseerd en/of geglobaliseerd. |
| Microsoft Managed Minimum Rules | Deze regels richten zich op de meest kritieke problemen in uw code waarvoor codeanalyse het meest nauwkeurig is. Deze regels zijn klein in getal en ze zijn alleen bedoeld om te worden uitgevoerd in beperkte Visual Studio-edities. Gebruik MinimumRecommendedRules.ruleset met andere Visual Studio-edities. |
| Aanbevolen regels voor Microsoft Managed | Deze regels richten zich op de meest kritieke problemen in uw code. Deze problemen omvatten mogelijke beveiligingsgaten, toepassingscrashes en andere belangrijke logica- en ontwerpfouten. U wordt aangeraden deze regelset op te nemen in een aangepaste regelset die u voor uw projecten maakt. |
| Minimale regels voor Microsoft Mixed (C++ /CLR) | Deze regels richten zich op de meest kritieke problemen in uw C++-projecten die ondersteuning bieden voor Common Language Runtime. Deze problemen omvatten mogelijke beveiligingsgaten, toepassingscrashes en andere belangrijke logica- en ontwerpfouten. U wordt aangeraden deze regelset op te nemen in een aangepaste regelset die u maakt voor uw C++-projecten die ondersteuning bieden voor Common Language Runtime. |
| Aanbevolen regels voor Microsoft Mixed (C++ /CLR) | Deze regels richten zich op de meest voorkomende en kritieke problemen in uw C++-projecten die ondersteuning bieden voor Common Language Runtime. Deze problemen omvatten mogelijke beveiligingsgaten, toepassingscrashes en andere belangrijke logica- en ontwerpfouten. Deze regelset is ontworpen voor gebruik in de Visual Studio Professional-editie en hoger. |
| Microsoft-beveiligingsregels | Deze regelset bevat alle Microsoft-beveiligingsregels. Neem deze regelset op om het aantal mogelijke beveiligingsproblemen te maximaliseren dat wordt gerapporteerd. |
Om elke regel op te nemen:
| Regelset | Beschrijving |
|---|---|
| Alle regels van Microsoft | Deze regelset bevat alle regels. Het uitvoeren van deze regelset kan ertoe leiden dat een groot aantal waarschuwingen wordt gerapporteerd. Gebruik deze regelset om een uitgebreid beeld te krijgen van alle problemen in uw code. Hiermee kunt u bepalen welke van de meer gerichte regelsets het meest geschikt zijn om te worden uitgevoerd voor uw projecten. |
Codeanalyse uitvoeren
Op de pagina Codeanalyse van het dialoogvenster Projecteigenschappen kunt u codeanalyse configureren om elke keer dat u uw project bouwt uit te voeren. U kunt codeanalyse ook handmatig uitvoeren.
Codeanalyse uitvoeren op een oplossing:
- Kies Codeanalyse uitvoeren in oplossing in het menu Opbouwen.
Codeanalyse uitvoeren op een project:
Selecteer in Solution Explorer de naam van het project.
Kies Codeanalyse uitvoeren inprojectnaam in het menu Opbouwen.
Codeanalyse uitvoeren op een bestand:
Selecteer in Solution Explorer de naam van het bestand.
Kies in het menu Build de optie Codeanalyse uitvoeren op bestand of druk op Ctrl+Shift+Alt+F7.
Het project of de oplossing wordt gecompileerd en codeanalyse wordt uitgevoerd. Resultaten worden weergegeven in het venster Foutenlijst.
Waarschuwingen voor codeanalyse analyseren en oplossen
Het venster Foutenlijst bevat de gevonden waarschuwingen voor codeanalyse. De resultaten worden weergegeven in een tabel. Als er meer informatie beschikbaar is over een bepaalde waarschuwing, bevat de eerste kolom een uitvouwcontrole. Kies deze optie om de weergave uit te vouwen voor aanvullende informatie over het probleem. Indien mogelijk geeft codeanalyse de regelnummers en analyselogica weer die tot de waarschuwing hebben geleid.
Voor gedetailleerde informatie over de waarschuwing, inclusief mogelijke oplossingen voor het probleem, kiest u de waarschuwings-id in de kolom Code om het bijbehorende online-Help-artikel weer te geven.
Dubbelklik op een waarschuwing om de cursor te verplaatsen naar de coderegel die de waarschuwing in de code-editor heeft veroorzaakt. Of druk op Enter op de geselecteerde waarschuwing.
Nadat u het probleem begrijpt, kunt u dit oplossen in uw code. Voer vervolgens de codeanalyse opnieuw uit om ervoor te zorgen dat de waarschuwing niet meer wordt weergegeven in de lijst met fouten.
Werkitems maken voor codeanalysewaarschuwingen
U kunt de functie voor het bijhouden van werkitems gebruiken om bugs vanuit Visual Studio te registreren. Als u deze functie wilt gebruiken, moet u verbinding maken met een exemplaar van Azure DevOps Server (voorheen Team Foundation Server).
Een werkitem maken voor een of meer C/C++-codewaarschuwingen
Vouw in de lijst met fouten de waarschuwingen uit en selecteer deze
Kies Werkitem maken in het snelmenu voor de waarschuwingen en kies vervolgens het type werkitem.
Visual Studio maakt één werkitem voor de geselecteerde waarschuwingen en geeft het werkitem weer in een documentvenster van de IDE.
Voeg aanvullende informatie toe en kies Vervolgens Werkitem opslaan.
Resultaten van analyse van zoek- en filtercode
U kunt lange lijsten met waarschuwingsberichten doorzoeken en u kunt waarschuwingen filteren in oplossingen voor meerdere projecten.
Als u waarschuwingen wilt filteren op titel of waarschuwings-id: voer het trefwoord in de lijst met zoekfouten in.
Waarschuwingen filteren op ernst: standaard wordt aan codeanalyseberichten een ernst van waarschuwing toegewezen. U kunt de ernst van een of meer berichten toewijzen als Fout in een aangepaste regelset. Kies in de kolom Ernst van de foutenlijst eerst de vervolgkeuzepijl en dan het filterpictogram. Kies Waarschuwing of Fout om alleen de berichten weer te geven waaraan de respectieve ernst is toegewezen. Kies Alles selecteren om alle berichten weer te geven.