Smíšené minimální pravidla pravidlo
Minimální pravidla smíšené společnosti Microsoft se zaměřuje na nejdůležitější problémy v projektech C++, které podporují modul CLR, včetně potenciální bezpečnostní díry a selhání aplikace.Měli byste zahrnout tuto sadu pravidel v jakékoli vlastní sadě pravidel, kterou vytvoříte pro vaše projekty C++, které podporují modul CLR (Common Language Runtime).
Pravidlo |
Description |
---|---|
Použití neinicializované paměti |
|
Přesměrování ukazatele Null |
|
Použití nekontrolované hodnoty |
|
Nulové ukončení z volání |
|
Chybné zřetězení |
|
Chybějící argument řetězce ve funkci Format |
|
Chybějící celočíselný argument ve funkci Format |
|
Chybějící argument ukazatel ve funkci Format |
|
Chybějící argument ukazatele na řetězec ve funkci Format |
|
Vrácení neinicializované paměti |
|
Index překračuje maximální vyrovnávací paměť |
|
Index překračuje maximální vyrovnávací paměť zásobníku |
|
Chybějící argument typu float ve funkci Format |
|
Nadbytečný argument ve funkci Format |
|
Argument, který není typu float, ve funkci Format |
|
Argument, který není celočíselný, ve funkci Format |
|
Argument, který není znakem, ve funkci Format |
|
Neplatné přetypování řetězce |
|
Neplatné volání CreateProcess |
|
Neplatný objektový argument ve funkci Format |
|
Priorita logického NE a bitové operace AND |
|
Priorita logického NE a bitové operace OR |
|
Neplatný argument řetězce znaků ve funkci Format |
|
Neplatný argument řetězec širokých znaků ve funkci Format |
|
Neshodné použití velikosti a počtu |
|
Nesprávné volání funkce s proměnnými argumenty |
|
Možná neshoda typu argumentu |
|
Přetečení čtení |
|
Přetečení zápisu |
|
Neplatná hodnota parametru |
|
Neplatná vlastnost atributu |
|
Kolidující hodnoty vlastností atributů |
|
Odkazy nemohou být Null |
|
Null na neukazatel |
|
MustCheck na Void |
|
Velikost vyrovnávací paměti na neukazatel nebo pole |
|
Neshoda Null na nule přístupné přes ukazatel |
|
Oprávnění k zápisu na konstantě |
|
Vrácení použito ve vstupní podmínce |
|
Ukončení znakem Null na neukazateli |
|
MustCheck musí být Ano nebo Ne |
|
Velikost prvku bez velikosti vyrovnávací paměti |
|
Velikost vyrovnávací paměti překračuje velikost pole |
|
Velikost vyrovnávací na neukazateli |
|
Žádné vlastnosti na atributu |
|
Platná velikost na nečitelné vyrovnávací paměti |
|
Zapisovatelná velikost na nezapisovatelné vyrovnávací paměti |
|
Neplatná anotace: hodnota vlastnosti 'NeedsRelease' musí být Ano nebo Ne. |
|
Neplatný přístup přes ukazatel na velikost řetězce |
|
Neplatný typ velikosti řetězce |
|
Neplatný parametr velikosti řetězce |
|
Neplatné nedostupné umístění velikosti řetězce |
|
Neplatný typ vyrovnávací paměti velikosti řetězce |
|
Neplatná anotace: vlastnost NeedsRelease nesmí být použita pro hodnoty typu void. |
|
Nerozpoznaný styl formátu řetězce |
|
Použití poznámek s atributy na tuto funkci způsobí zneplatnění všech existujících poznámek __declspec |
|
Neplatná specifikace velikosti: výraz nelze analyzovat |
|
Neplatný Deref = nebo Notref =: výraz nelze analyzovat |
|
Hodnota není platnou hodnotou Ano/Ne/Možná |
|
Hodnota není hodnota řetězce |
|
Hodnota není číslo |
|
Neočekávaná chyba výrazu poznámky |
|
Očekávaný počet argumentů pro poznámku neodpovídá skutečnému počtu argumentů pro poznámku |
|
Neočekávaná chyba poznámky pro poznámku |
|
Parametr popsaný poznámkou musí být ukazatel |
|
Přistupování přes ukazatel NULL.Ukazatel obsahuje stejnou hodnotu NULL jako jiný ukazatel. |
|
Neplatný odkaz na nestatický člen |
|
Nejednoznačný odkaz na člen třídy. |
|
_Success_ nebo _On_failure_ použito v neplatném kontextu |
|
Levý operand odkazuje na strukturu, použijte '->' |
|
Levý operand je struktura, použijte '.' |
|
Poznámky pro kontext __on_failure nesmí být v explicitním předkontextu |
|
Pro SAL_context byl očekáván název statického kontextu |
|
Pro poznámku byl očekáván výraz ukazatele |
|
Poznámka _Use_decl_annotations_ musí být použita pro odkazování předchozí deklarace bez úprav. |
|
Názvy parametrů atributu musí být p1...p9 |
|
Typefix nelze použít na parametr, který již má typefix |
|
Poznámka CheckReturn platí pouze pro následné podmínky pro určitý parametr funkce. |
|
Počet parametrů poznámky na funkci neodpovídá tomu, který byl nalezen v souboru |
|
Parametr poznámky pro parametr funkce neodpovídá tomu, který byl nalezen v souboru |
|
Člen výčtu byl očekáván pro okomentování parametru v poznámce |
|
Celočíselný výraz byl očekáván pro okomentování parametru v poznámce |
|
Výraz řetězce byl očekáván pro parametr v poznámce |
|
Pro poznámku očekávány hodnoty __yes, __no nebo __maybe |
|
Nebyl nalezen očekávaný Token/identifikátor pro poznámku, parametr |
|
Poznámka vyžaduje parametry |
|
Nebyl nalezen správný počet požadovaných parametrů v poznámce |
|
Poznámka nemůže být také PrimOp (v aktuální deklaraci) |
|
Poznámka nemůže být také PrimOp (viz předchozí deklarace) |
|
Parametr poznámky: v poznámkách nelze používat typ |
|
Poznámka nepodporuje parametry |
|
Typ parametru nemá žádné členy. |
|
Poznámka je platná pouze pro pole |
|
pre, post nebo deref nebyly použity pro ani jednu poznámku |
|
pre, post nebo deref použity pro blok |
|
Výraz __at se nevztahuje na aktuální funkci |
|
Funkce nemůže zůstat sama jako poznámka |
|
Poznámka nemůže být použita ve výrazu |
|
Poznámka pro parametr není již nadále podporována |
|
Poznámka pro parametr má více než jednu value, stringValue nebo longValue.Použijte paramn=xxx |
|
Poznámka pro parametr má jak value, stringValue a longValue, tak i paramn=xxx.Použijte pouze paramn=xxx |
|
Poznámka pro parametr obsahuje param2, ale ne param1 |
|
Poznámka pro funkci na parametru není rozpoznána |
|
Poznámka pro funkci na parametru vyžaduje více přístupů přes ukazatel, než skutečný typ s poznámkou umožňuje |
|
Poznámka pro funkci popisuje 'this' na funkci bez členu |
|
Poznámka parametru pro funkci neodpovídá typu parametru |
|
Nekonzistentní poznámka pro funkci: v předchozí instanci došlo k chybě. |
|
Nekonzistentní poznámka pro funkci: v této instanci došlo k chybě. |
|
Nekonzistentní poznámka pro funkci: parametr má v této instanci jiné anotace. |
|
Nekonzistentní poznámka pro funkci: parametr má v této instanci jiné anotace. |
|
dynamic_cast<>() není v poznámkách podporováno |
|
Ve funkci byla nalezena chyba syntaxe v poznámce |
|
Chyba syntaxe v podmíněné poznámce byla nalezena pro Vnitřní poznámku |
|
Výsledné seznamy hodnot musí být konstanty. |
|
Chyba syntaxe v poznámkách byla nalezena v poznámce pro funkci. |
|
V poznámce pro funkci je parametr nekonzistentní s deklarací funkce při zkoumání |
|
Klíče funkce nejsou konzistentní s deklarací funkce |
|
Parametr _Macro_value_ je null |
|
Pro symbol byl nalezen 'begin' bez odpovídajícího 'end' |
|
Pro symbol byl nalezen 'end' bez odpovídajícího 'begin' |
|
Řetězce formátu musí být ve vstupních podmínkách |
|
Chyba syntaxe v parametru funkce |
|
Chyba syntaxe poblíž konce funkce |
|
Chyba syntaxe v poznámce _At_() pro funkci (název parametru nebyl rozpoznán) |
|
Chyba syntaxe v poznámce _At_() pro funkci (neplatný název parametru) |
|
ReadableTo nebo WritableTo pro funkci nemá parametr limit-spec |
|
Poznámka pro funkci obsahuje více externích typů než skutečný počet parametrů |
|
Zapsání null/notnull je pro deref na úrovní 0 pro funkci bezvýznamné. |
|
Operandy výrazu nejsou kompatibilních typů pro operátor |
|
Žádné poznámky pro první deklaraci funkce. |
|
Na poznámce byl nalezen nadbytečný operátor _Deref_. |
|
V poznámce byl nalezen nejednoznačný operátor _Deref_. |
|
Na token byl nesprávně umístěn operátor _Notref_. |
|
Byla zjištěna chyba při analýze tokenu. |
|
Poznámka popisuje situaci, která není podmíněně použitelná. |
|
Poznámka popisuje, kde dynamickou hodnotu (proměnnou) nelze v podmínce použít. |
|
Typy, které vlastní uvolnitelná pole, by měly být uvolnitelné |
|
Odstraňte prázdné finalizační metody |
|
Uvolnitelná pole by měla být uvolněna |
|
Je třeba přetížit operátor rovnosti při přetížení ValueType.Equals |