Sdílet prostřednictvím


Smíšené doporučená pravidla pravidlo

Pravidla Microsoft smíšené doporučuje zaměřit na nejběžnějších a kritické problémy v C++ projektech, které podporují modul Common Language Runtime včetně celistvosti potenciální chyby aplikací a jiné důležité chyby logiku a návrh.Toto pravidlo v nastavených vlastní pravidlo vytvořit C++ projektů, které podporují společný jazykový modul Runtime, by měla zahrnovat.Tato sada pravidel je určen nakonfigurovat Visual Studio Professional edition a vyšší.

Pravidlo

Description

C6001

Použití neinicializované paměti

C6011

Odkazování ukazatele s hodnotou Null

C6029

Použití hodnoty Nekontrolovaná

C6031

Vrácená hodnota ignorována

C6053

Nula ukončení z volání

C6054

Nula Chybějící ukončení

C6059

Chybný zřetězení

C6063

Chybějící Argument řetězec formátu funkce

C6064

Chybějící Argument funkce Format celé číslo

C6066

Chybějící Argument ukazatel funkce Format

C6067

Chybějící Argument ukazatele řetězec formátu funkce

C6101

Vrácení neinicializovaných paměti

C6200

Index překračuje maximální vyrovnávací paměti

C6201

Index překračuje maximální vyrovnávací zásobník

C6214

Neplatné přetypování HRESULT K BOOL

C6215

Neplatné přetypování BOOL na HRESULT

C6216

Neplatný vložili kompilátor Cast BOOL na HRESULT

C6217

Neplatný Test HRESULT ale

C6220

Neplatná hodnota HRESULT porovnat-1

C6226

Neplatné přiřazení HRESULT-1

C6230

Neplatné použití HRESULT jako logická hodnota

C6235

Konstanta nula s logickou- nebo

C6236

Logické- nebo s nenulovou konstanta

C6237

Nula s logickou- A ztratí vedlejší účinky

C6242

Místní Unwind vynucené

C6248

Vytváření Null DACL

C6250

Nevydané adresu popisovače

C6255

Nechráněné použití Alloca

C6258

Pomocí ukončení podprocesu

C6259

Kód mrtvých v bitové- nebo omezené přepínač

C6260

Použití aritmetický bajt

C6262

Nadměrné využití zásobníku

C6263

Pomocí Alloca ve smyčce

C6268

Chybějící závorky v osazení

C6269

Zrušit reference struktury ukazatel ignorována

C6270

Chybějící Argument funkce Format Float

C6271

Další Argument funkce Format

C6272

Typ Float argumenty funkce Format

C6273

Argumen celé číslo funkce Format

C6274

Než znak Argument funkce Format

C6276

Neplatný řetězec osazení

C6277

Neplatné volání CreateProcess

C6278

Nové pole odstranit skalární neshoda

C6279

Neshoda skalární nové pole odstranit

C6280

Neshoda paměti přidělování-navracení zpět

C6281

Bitový operátor přednost vztahu

C6282

Přiřazení nahradí Test

C6283

Nové pole odstranit skalární primitivní neshoda

C6284

Neplatný objekt Argument funkce Format

C6285

Logické- nebo konstant

C6286

Nulová logické- nebo ztráty vedlejší účinky

C6287

Redundantní Test

C6288

Vzájemné zařazení přes logické- A hodnotu False

C6289

Vzájemné vyloučení přes logické- nebo je PRAVDA

C6290

Bitové logické ne-Priorita A

C6291

Bitové logické ne- nebo Priorita

C6292

Smyčka se počítá od maximální

C6293

Smyčky vrátí z minimálních

C6294

Tělo smyčky nikdy proveden.

C6295

Nekonečné smyčky

C6296

Opakovat pouze jednou spuštěn.

C6297

Výsledek Shift přetypovat na větší velikost

C6299

Bitfield na logické porovnání

C6302

Neplatný Argument znak řetězce formátu funkce

C6303

Neplatný široké Argument znak řetězce formátu funkce

C6305

Chybná velikost a počet

C6306

Nesprávné volání funkce proměnné Argument

C6308

Únik Realloc

C6310

Neplatná konstanta filtru výjimky

C6312

Výjimka pokračovat v provádění smyčky.

C6314

Bitové- nebo Priorita

C6317

Není není doplňkem.

C6318

Výjimka pokračovat v hledání

C6319

Ignoruje čárka

C6324

Kopírovat řetězec namísto řetězce porovnat

C6328

Potenciální Neshoda typu Argument

C6331

Neplatné příznaky VirtualFree

C6332

Parametr VirtualFree je neplatný

C6333

Velikost VirtualFree je neplatný

C6335

Unikající popisovač procesu

C6381

Chybějící informace o vypnutí

C6383

Prvek počet bajtů-Počet přetečení vyrovnávací paměti

C6384

Divize velikost ukazatele

C6385

Čtení přetečení

C6386

Zápis přetečení

C6387

Neplatná hodnota parametru

C6388

Neplatná hodnota parametru

C6500

Neplatný atribut vlastnosti.

C6501

Konfliktní hodnoty vlastnosti atributu

C6503

Odkazy nemůže mít hodnotu Null

C6504

Null na jiné ukazatele

C6505

MustCheck na Void

C6506

Velikost vyrovnávací paměti na-ukazatel myši nebo matici.

C6507

Neshoda Null zrušit reference struktury nula

C6508

Přístup pro zápis konstanta

C6509

Návrat na předpokladem

C6510

Null byla ukončena na jiné ukazatele

C6511

MustCheck musí být Ano nebo ne

C6513

Velikost prvku bez velikost vyrovnávací paměti

C6514

Velikost vyrovnávací paměti přesahuje velikost pole

C6515

Velikost vyrovnávací paměti na jiné ukazatele

C6516

Žádné vlastnosti atributu

C6517

Platné velikosti v nečitelném vyrovnávací paměti

C6518

Zapisovatelný velikost vyrovnávací paměti zapisovat

C6519

Neplatná anotace: musí být vlastnost 'NeedsRelease' hodnota Ano nebo ne.

C6521

Neplatný řetězec velikost zrušit reference struktury

C6522

Neplatný řetězec zadejte velikost

C6523

Neplatný parametr řetězec velikost

C6525

Neplatný řetězec velikost nedostupná umístění

C6526

Neplatný typ řetězce vyrovnávací paměti velikost

C6527

Neplatná anotace: vlastnost "NeedsRelease" lze na hodnoty typu void.

C6530

Nerozpoznaný formát řetězce styl

C6540

Použití atributu poznámky k této funkci způsobí neplatnost všech existujících poznámek __declspec

C6551

Neplatná velikost specifikace: výrazu není parsable

C6552

Neplatný Deref = nebo Notref =: výrazu není parsable

C6701

Hodnota není platná hodnota Ano/Ne/možná

C6702

Hodnota je hodnota řetězce

C6703

Hodnota není číslo

C6704

Neočekávaná chyba výrazu poznámky

C6705

Očekávaný počet argumentů pro poznámku neodpovídá skutečný počet argumentů pro poznámku

C6706

Neočekávaná chyba poznámku pro poznámku

C6995

Nepodařilo se uložit soubor protokolu XML

C26100

Časování

C26101

Selhání operace ženského správně používat

C26110

Volajícímu nejsou v držení zámku

C26111

Není-li uvolnit uzamčení volajícího

C26112

Volající nemůže obsahovat žádné uzamčení

C26115

K uvolnění uzamčení

C26116

Selhalo získání nebo držení zámku

C26117

Uvolnění zámku unheld

C26140

Chyba poznámek SAL souběžnosti

C28020

Výraz není PRAVDA na volání

C28021

Parametr je uvedena poznámka musí být ukazatel

C28022

Funkce třídy k této funkci neodpovídají funkce třídy na typedef definovat ji používá.

C28023

Funkce, které jsou přiřazeny nebo předány by měl mít _Function_class_ poznámku pro nejméně jeden třídy

C28024

Ukazatel na funkci mu jsou přiděleny označena funkce třídy, která není obsažena v seznamu funkce třídy.

C28039

Typ parametru skutečné by přesně odpovídat typu

C28112

Proměnná, která je přístupná prostřednictvím funkce aplikace Interlocked vždy přístupná prostřednictvím funkce aplikace Interlocked.

C28113

Přístup k místní proměnné prostřednictvím funkce aplikace Interlocked

C28125

Funkce musí být volána z v rámci try / kromě bloku

C28137

Proměnná argument měla by být konstanta (literál)

C28138

Konstantní argument by měl být namísto proměnné

C28159

Zvažte použití jiné funkce.

C28160

Chyba poznámek

C28163

Funkce by měla být volána z nikdy, v rámci try / kromě bloku

C28164

Argument je předáním funkci, která očekává ukazatel na objekt (není ukazatel na ukazatel)

C28182

Odkazování ukazatele s hodnotou NULL.Ukazatel obsahuje stejnou hodnotu NULL, stejně jako jiné ukazatele.

C28183

Argument nemůže být jednu hodnotu a kopírovat hodnoty naleznete v ukazatel

C28193

Proměnná obsahuje hodnotu, která musí být zkontrolován

C28196

Požadavek není splněna.(Výraz nelze vyhodnotit na hodnotu true.)

C28202

Neplatný odkaz k nestatickému členu

C28203

Jednoznačný odkaz na člen třídy.

C28205

_Success_ nebo _On_failure_ použit neplatný kontextu

C28206

Operand body zleva struktura, použijte '-> "

C28207

Levý operand je struktura, použijte '. "

C28209

Prohlášení pro symbol má konfliktní prohlášení

C28210

Poznámky pro kontext __on_failure nesmí být v kontextu explicitní pre

C28211

Název statického kontextu pro SAL_context

C28212

Ukazatel výraz pro poznámku

C28213

_Use_decl_annotations_ Poznámka musí použít bez úprav, odkaz na předchozí prohlášení.

C28214

Názvy atributů parametr musí být p1... p9

C28215

Typefix nelze použít parametr, který již typefix

C28216

CheckReturn poznámky platí pouze pro určité funkce parametru postconditions.

C28217

Funkci počet parametrů anotace neodpovídá adrese soubor

C28218

Pro funkci paramteer na poznámku parametr neodpovídá adrese soubor

C28219

Očekávané výčtu poznámky parametr Poznámka

C28220

Očekáván výraz celé číslo poznámky parametr v poznámku

C28221

Řetězcový výraz očekávání parametru v poznámku

C28222

__yes, __no nebo __maybe očekávání pro poznámku

C28223

Byl očekáván Token nebo identifikátor nebyla nalezena poznámka, parametr

C28224

Vyžaduje parametry

C28225

Nenašel správný počet požadovaných parametrů poznámek

C28226

Annotation nemůže být PrimOp (v aktuální prohlášení)

C28227

Annotation nemůže být PrimOp (viz předchozí prohlášení)

C28228

Parametr Poznámka: nelze použít typ poznámky

C28229

Poznámky nepodporuje parametry

C28230

Žádný člen má typ parametru.

C28231

Poznámka je platný pouze v matici

C28232

Pre, účtovat nebo deref není použito žádné poznámky

C28233

Pre, účtovat nebo deref pro blok

C28234

__at výraz se nevztahuje na aktuální funkce

C28235

Funkci nelze samostatně jako poznámky

C28236

Poznámku nelze použít ve výrazu

C28237

Poznámka pro parametr není podporován

C28238

Poznámky na parametr má více než jednu hodnotu, String a Long.Pomocí paramn = xxx

C28239

Poznámky na parametr má obě hodnoty, String nebo Long; a paramn = xxx.Použít pouze paramn = xxx

C28240

Poznámky na parametr má param2, ale žádné param1

C28241

Poznámka pro funkci v parametru nebyl rozpoznán.

C28243

Poznámka pro parametr funkce vyžaduje více dereferences než je skutečný typ poznámkami

C28244

Poznámka pro funkci má Neanalyzovatelný parametr/externí poznámky

C28245

Poznámka pro funkci 'this' zaznamenává na non člen funkce

C28246

Anotace parametr pro funkci neodpovídá typu parametru

C28250

Nekonzistentní poznámku pro funkci: předchozí instance došlo k chybě.

C28251

Nekonzistentní poznámku pro funkci: Tato instance došlo k chybě.

C28252

Nekonzistentní poznámku pro funkci: parametr má jiné poznámky v této instanci.

C28253

Nekonzistentní poznámku pro funkci: parametr má jiné poznámky v této instanci.

C28254

(dynamic_cast < >) nepodporuje poznámky

C28262

Chyba syntaxe v poznámku byl nalezen ve funkci poznámky

C28263

Chyba syntaxe v podmíněné poznámku pro vnitřní poznámku nebyl nalezen.

C28264

Výsledek seznamy hodnot musí být konstanty.

C28267

Chyba syntaxe v poznámky byl nalezen poznámky ve funkci.

C28272

Poznámka pro funkci parametru při zkoumání je nekonzistentní s deklarace funkce

C28273

Funkci záchytné body nejsou konzistentní s deklarace funkce

C28275

Parametr _Macro_value_ je null

C28279

Pro symbol "begin" byl nalezen bez odpovídající "end.

C28280

Pro symbol k ukončení byl nalezen bez odpovídající "begin"

C28282

Formát řetězce musí být v předpoklady

C28285

Chyba v syntaxi parametru funkci

C28286

Funkce Chyba syntaxe poblíž konce

C28287

Funkce Chyba syntaxe v _At_() poznámky (název parametru nebyl rozpoznán)

C28288

Funkce Chyba syntaxe v _At_() poznámky (název neplatný parametr)

C28289

Funkce: ReadableTo nebo WritableTo neměl omezit spec jako parametr

C28290

Poznámka pro funkce obsahuje více externích typů než skutečný počet parametrů

C28291

Zaúčtovat hodnotu null nebo notnull na deref úrovni 0 je funkce nemá význam.

C28300

Operandy nekompatibilní typy pro operátor výraz

C28301

První prohlášení funkce žádné poznámky.

C28302

Operátor extra _Deref_ byl nalezen na poznámku.

C28303

Na poznámku byla nalezena dvojznačná _Deref_ operátor.

C28304

Operátor nesprávně umístěné _Notref_ byl nalezen u token.

C28305

Byla zjištěna chyba při analýze tokenu.

C28306

Poznámky na parametr je obsolescent

C28307

Poznámky na parametr je obsolescent

C28350

Poznámka popisuje situaci, která není podmíněně použitelná.

C28351

Poznámka popisuje, kde dynamická hodnota (proměnná) nelze použít v podmínce.

CA1001

Typy, které vlastní jednorázových polí by mělo být na jedno použití

CA1009

Správně deklarovat obslužné rutiny událostí

CA1016

Značka sestav s AssemblyVersionAttribute

CA1033

Metody rozhraní by měla být volána skriptem podřízené typy

CA1049

Typy vlastních nativní zdrojů by měly být na jedno použití

CA1060

Přesunout do třídy NativeMethods P/Invokes

CA1061

Nelze skrýt metody základní třídy.

CA1063

Správně implementovat IDisposable

CA1065

Nevyvolávají výjimky v neočekávané umístění

CA1301

Vyhnout se duplicitní akcelerátory

CA1400

Vstupní body P/Invoke by existovat.

CA1401

P/Invokes nemusí být viditelné

CA1403

Typy automatického rozložení nesmí být viditelné COM

CA1404

Volání funkce GetLastError ihned po vyvolání/P

CA1405

Základní typy viditelný typ COM musí být viditelné COM

CA1410

Najít odpovídající registraci metod modelu COM

CA1415

Správně deklarovat P/Invokes

CA1821

Odstranit prázdné finalizačních metod

CA1900

Pole typu hodnota by měla být přenosný

CA1901

P/Invoke prohlášení by mělo být přenosný

CA2002

Zamknout na objekty s identitou slabé

CA2100

Zkontrolujte chyby zabezpečení dotazy SQL

CA2101

Určit zařazování pro řetězcové argumenty P/Invoke.

CA2108

Přezkoumání deklarativní zabezpečení na hodnotu typy

CA2111

Ukazatele nemusí být viditelné

CA2112

Nesmí vystavovat zabezpečené typy polí

CA2114

Metoda zabezpečení by měl být nadmnožinou typu

CA2116

Metody APTCA by pouze volání metod APTCA

CA2117

Typy APTCA by měl rozšířit pouze základní typy APTCA

CA2122

Nepřímo neuvádějí metody s požadavky propojení

CA2123

Přepsat spojení, které by měly být shodné základní požadavky

CA2124

Obtékání ohrožen nakonec klauzulí ve vnější akci

CA2126

Typ propojení požadavků vyžadují dědičnost poptávek

CA2131

Důležité typy zabezpečení není součástí typu rovnocennost

CA2132

Musí být výchozí konstruktory důležité jako základní typ výchozí konstruktory

CA2133

Delegáti musí navázat na metody s konzistentní průhlednost

CA2134

Metody musí zachovat konzistentní průhlednost při přepsání základní metody

CA2137

Transparentní metody musí obsahovat pouze ověřitelné IL

CA2138

Transparentní metody musí nelze volat metody s atributem SuppressUnmanagedCodeSecurity

CA2140

Průhledné kód musí odkazovat není zabezpečení důležité položky

CA2141

Transparentní metody musí splňovat není LinkDemands

CA2146

Typy musí být důležité jako rozhraní a základní typy

CA2147

Transparentní metody nelze použít zabezpečení nepodmíněných výrazů

CA2149

Transparentní metody musí není volání do nativního kódu

CA2200

Rethrow zachovat podrobnosti zásobníku

CA2202

Neodstraňovat několikrát objekty

CA2207

Inicializace vložené statické pole typu hodnota

CA2212

Neoznačovat servisu komponenty s WebMethod

CA2213

Na jedno použití polí by vyřazen.

CA2214

Nevolejte overridable metody konstruktory

CA2216

Typy jednorázových by měla deklarovat finalizačních metod

CA2220

Základní třída finalizačních metod by měla zavolat finalizačních metod

CA2229

Implementovat serializace konstruktory

CA2231

Přetížení operátor rovná se na přepsání ValueType.Equals

CA2232

Značka model Windows Forms vstupní body s STAThread

CA2235

Označit všechna pole není serializovatelný.

CA2236

Typy ISerializable volat metody základní třídy.

CA2237

Typy ISerializable značka s SerializableAttribute

CA2238

Správně implementovat metody serializace

CA2240

Správně implementovat ISerializable

CA2241

Poskytovat správné argumenty metody formátování

CA2242

Test správně NaN