次の方法で共有


"混合推奨規則" 規則セット

混合 Microsoft は共通のフォーカスをお勧めします。共通言語ランタイムは、セキュリティ ホール、アプリケーション クラッシュ、そのほかの重要な論理エラーやデザイン エラー サポートする C++ の重要な問題はプロジェクト。共通言語ランタイムをサポートする C++ プロジェクトにカスタムの規則セットを作成する場合は、必ずこの規則セットを含める必要があります。この規則セットは、Visual Studio Professional Edition 以上で構成するように設計されています。

規則

説明

C6001

初期化されていないメモリの使用

C6011

Null ポインターの逆参照

C6029

未確認の値の使用

C6031

戻り値の無視

C6053

呼び出しの 0 での終了

C6054

0 での終了がない

C6059

不適切な連結

C6063

Format 関数への文字列引数がない

C6064

Format 関数への整数引数がない

C6066

Format 関数へのポインター引数がない

C6067

Format 関数への文字列ポインター引数がない

C6101

初期化されていないメモリを返します

C6200

インデックスがバッファーの最大値を超過

C6201

インデックスがスタック バッファーの最大値を超過

C6214

HRESULT から BOOL への無効なキャスト

C6215

BOOL から HRESULT への無効なキャスト

C6216

BOOL から HRESULT へのコンパイラ挿入された無効なキャスト

C6217

NOT での無効な HRESULT テスト

C6220

無効な HRESULT は -1 と比較します。

C6226

-1 への無効な HRESULT の割り当て

C6230

ブール値としての無効な HRESULT 使用

C6235

以外の定数と論理 OR

C6236

論理 OR 以外の定数と

C6237

ゼロと論理 AND 副作用が失われます。

C6242

ローカル アンワインドの強制

C6248

Null DACL の作成

C6250

解放されていないアドレス記述子

C6255

Alloca の保護されていない使用

C6258

を使用してスレッドを終了します。

C6259

実行されないコード ビットごとの OR 限られたスイッチ

C6260

バイト算術の使用

C6262

過剰なスタック使用

C6263

ループでの Alloca の使用

C6268

キャストでのかっこの不足

C6269

ポインターの逆参照の無視

C6270

Format 関数への Float 引数がない

C6271

Format 関数への余分な引数

C6272

Format 関数への Float でない引数

C6273

関数の書式を指定する整数以外 Argumen

C6274

Format 関数への文字でない引数

C6276

無効な文字列のキャスト

C6277

無効な CreateProcess 呼び出し

C6278

配列の New とスカラーの Delete の不一致

C6279

スカラーの New と配列の Delete の不一致

C6280

メモリの割り当てと解放の不一致

C6281

ビットごとと関係の優先順位

C6282

代入をテストに置き換え

C6283

プリミティブな配列の New とスカラーの Delete の不一致

C6284

Format 関数への無効なオブジェクト引数

C6285

論理 OR の定数

C6286

ゼロ以外の論理 OR や副作用

C6287

冗長テスト

C6288

相互包含は論理的および false

C6289

相互排他が論理 OR 当てはまります。

C6290

論理否定演算子ビットごとの and 優先順位

C6291

論理否定演算子ビットごとの OR の優先順位

C6292

ループ カウントの最大値超過

C6293

ループ カウントの最小値未満

C6294

ループ本体が実行されない

C6295

無限ループ

C6296

ループが 1 度だけ実行される

C6297

シフトの結果がより大きいサイズにキャストされる

C6299

ビット フィールドとブール値の比較

C6302

Format 関数への無効な文字列引数

C6303

Format 関数への無効なワイド文字列引数

C6305

サイズと数の使用の不一致

C6306

不適切な変数引数の関数呼び出し

C6308

Realloc のリーク

C6310

無効な例外フィルター定数

C6312

Exception Continue Execution ループ

C6314

ビットごとの OR の優先順位

C6317

存在しない補完

C6318

Exception Continue Search

C6319

コンマによる無視

C6324

文字列比較でない文字列コピー

C6328

引数の型の不一致の可能性

C6331

VirtualFree の無効なフラグ

C6332

VirtualFree の無効なパラメーター

C6333

VirtualFree の無効なサイズ

C6335

プロセス ハンドルのリーク

C6381

シャットダウン情報がない

C6383

要素数とバイト数のバッファー オーバーラン

C6384

ポインターのサイズの除算

C6385

読み取りのオーバーラン

C6386

書き込みのオーバーラン

C6387

無効なパラメーター値

C6388

無効なパラメーター値

C6500

無効な属性プロパティ

C6501

属性プロパティ値の競合

C6503

参照は Null にはできない

C6504

非ポインターでの Null

C6505

Void での MustCheck

C6506

非ポインターまたは配列でのバッファー サイズ

C6507

逆参照ゼロの空白の不一致

C6508

定数での書き込みアクセス

C6509

前提条件で使用される Return

C6510

非ポインターでの Null 終了

C6511

MustCheck は Yes または No でなければならない

C6513

バッファー サイズのない要素サイズ

C6514

バッファー サイズが配列サイズを超過

C6515

非ポインターでのバッファー サイズ

C6516

属性にプロパティがない

C6517

読み取り可能でないバッファーでの有効なサイズ

C6518

書き込み可能でないバッファーでの書き込み可能サイズ

C6519

無効な注釈です: 「NeedsRelease」プロパティの値がはいといいえの指定

C6521

無効なサイズの文字列参照解除

C6522

無効なサイズの文字列型

C6523

無効なサイズを文字列パラメーター

C6525

無効なサイズの到達不能な場所の文字列

C6526

無効なサイズの文字列バッファーの型

C6527

無効な注釈です: 'NeedsRelease' プロパティは、void 型の値では使用できません

C6530

認識されない書式指定文字列スタイル

C6540

この関数の属性の注釈を使用すると、既存の__declspec 注釈がすべて無効になります。

C6551

無効なサイズ指定です: 解析できる式

C6552

無効な Deref= または Notref=: 解析できる式

C6701

値が有効な Yes/No/Maybe 値ではありません。

C6702

値は、文字列値ではありません。

C6703

value が数ではありません。

C6704

予期しない注釈の式のエラー

C6705

注釈の引数の予期された数は、注釈の引数の実際の数は一致しません

C6706

注釈の予期しないエラーの注釈

C6995

XML ログ ファイルを保存できませんでした

C26100

競合状態

C26101

適切なインタロック操作の使用の失敗

C26110

呼び出し元でのロックの保持の失敗

C26111

呼び出し元でのロックの解放の失敗

C26112

呼び出し元がロックを保持できない

C26115

ロックの解放の失敗

C26116

ロックの取得または保持の失敗

C26117

保持されていないロックの解放

C26140

同時実行 SAL 注釈のエラーです。

C28020

式はこの呼び出しで true ではありません

C28021

注釈が付けられているパラメーターはポインターである必要があります

C28022

この関数のクラスを定義するために使用される関数の typedef クラスと一致しません。

C28023

割り当てられた場合や、渡された関数はクラスの 1 個以上の_Function_class_の注釈が必要です。

C28024

に割り当てられた関数ポインターは、関数のクラス リストに含まれていない関数クラスが指定されます。

C28039

実パラメーターの型は、型と完全に一致する必要があります

C28112

インタロックされた関数でアクセスされる変数は、インタロック関数によって常にアクセスする必要があります。

C28113

Interlocked 関数経由でローカル変数にアクセスしています

C28125

関数は try/except ブロック内から呼び出される必要があります

C28137

可変個の引数が a (リテラル定数) 必要があります。

C28138

定数の引数は、変数である必要があります

C28159

代わりに、別の関数を使用して検討。

C28160

Error 注釈

C28163

関数は try/except ブロック内から呼び出さないでください

C28164

引数はオブジェクト (ポインターへのポインターではなく) へのポインターを受け取る関数に渡します。

C28182

NULL ポインターを逆参照しています。ポインターは別のポインターと同じ null 値が含まれます。

C28183

引数は 1 つの値である可能性があり、ポインターで見つかった値のコピーです

C28193

変数が確認される値を保持します。

C28196

要件が満たされていません。(式は true に評価されません)

C28202

静的でないメンバーへの参照が正しくありません

C28203

クラス メンバーへのあいまいな参照です。

C28205

_Success_ または _On_failure_ が無効なコンテキスト内で使用されています

C28206

左のオペランドは構造体、使用"ポイント>

C28207

左のオペランドは構造体、使用「」。

C28209

シンボルの宣言に競合する宣言が含まれています

C28210

__on_failure のコンテキストの注釈はコンテキストに明示前にある必要があります。

C28211

SAL_context には静的コンテキスト名が必要です

C28212

注釈にはポインター式が必要です

C28213

_Use_decl_annotations_ 注釈は、変更、先行する宣言なしで、参照に使用される必要があります。

C28214

属性パラメーター名は、p1...p9 である必要があります

C28215

typefix は、既に typefix のあるパラメーターには適用できません

C28216

checkReturn の注釈は、関数のパラメーターの事後条件にのみ適用されます。

C28217

関数では、注釈に渡すパラメーターの個数はファイルにある一致しません。

C28218

関数の paramteer では、注釈のパラメーターはファイルにある一致しません。

C28219

注釈 (注釈のパラメーター) には列挙型のメンバーが必要です

C28220

整数式は、注釈で注釈のパラメーターが必要です。

C28221

注釈のパラメーターには文字列式が必要です

C28222

注釈には __yes、__no、または __maybe が必要です

C28223

注釈、パラメーターの予期されるトークンまたは識別子が見つかりませんでした

C28224

注釈にはパラメーターが必要です

C28225

注釈の必須パラメーターの正しい数が見つかりませんでした

C28226

注釈は、PrimOp (現在の宣言内) になることもできません

C28227

注釈は、PrimOp (前の宣言を参照) になることもできません

C28228

注釈パラメーター: 型の注釈は使用できません

C28229

注釈はパラメーターをサポートしません

C28230

パラメーターの型とメンバーはありません。

C28231

注釈は配列でのみ有効です

C28232

前に、注釈に適用されないポスト、または deref

C28233

前に、POST、または deref はブロックに適用します。

C28234

__at の式は、現在の関数には適用されません。

C28235

関数は、注釈としてスタンドアロンのできません

C28236

注釈は式では使用できません

C28237

パラメーターの注釈はサポートされていません。

C28238

注釈は、パラメーターの値 stringValue と longValue 1 を超える場合があります。paramn=xxx を使用してください

C28239

パラメーターの注釈の値、stringValue、または longValue;があります。と paramn=xxx。paramn=xxx のみを使用してください

C28240

パラメーターに注釈を付けることに param2 param1 はありません

C28241

パラメーターを使用する関数の注釈が認識されない

C28243

パラメーターを使用する関数の注釈を実際の型で注釈が付けられた割り当てよりも多くの逆参照が必要です。

C28244

関数の注釈に unparseable パラメーターまたは外部注釈があります。

C28245

関数の注釈は非メンバー関数の" this "注釈を

C28246

関数のパラメーター注釈は、パラメーターの型と一致しません。

C28250

関数の競合する注釈: 前のインスタンスにエラーがあります。

C28251

関数の競合する注釈: このインスタンスにエラーがあります。

C28252

関数の競合する注釈: パラメーターにこのインスタンスの別の注釈があります。

C28253

関数の競合する注釈: パラメーターにこのインスタンスの別の注釈があります。

C28254

dynamic_cast が<>注釈 () でサポートされていません

C28262

注釈の構文エラーは、注釈の関数で、見つかりました

C28263

条件で構文エラーは、基本的な注釈に見つかりました

C28264

結果リストの値は定数である必要があります。

C28267

注釈の構文エラーは、関数で見つかった注釈です。

C28272

確認が関数宣言と矛盾しているときに、関数パラメーターの注釈

C28273

関数の場合、手掛かりが関数宣言と一致しません。

C28275

_Macro_value_ へのパラメーターが null です

C28279

シンボルについては、「 () 」が見つかりました。一致の末尾「なし"

C28280

シンボルについては、「終了」が一致しない中「で始まり」

C28282

書式指定文字列は、前提条件の中に存在する必要があります

C28285

関数の場合、パラメーターの構文エラー

C28286

関数の場合、最後の近くに構文エラーがあります。

C28287

関数の場合、_At_() の注釈 (認識されないパラメーター名) の構文エラー

C28288

関数の場合、_At_() の注釈 (無効なパラメーターの名前) の構文エラー

C28289

関数の場合: ReadableTo または WritableTo にパラメーターとして制限仕様はありませんでした。

C28290

関数の注釈は、パラメーターの実際の数よりも多くの外部が含まれます。

C28291

deref レベル 0 の投稿の空白と notnull は関数ごとに無意味です。

C28300

演算子に対する互換性のない型の、式のオペランドです

C28301

関数の最初の宣言の注釈はありません。

C28302

追加_Deref_の演算子は、注釈で見つかりました。

C28303

あいまいな_Deref_の演算子は、注釈で見つかりました。

C28304

不適切に配置_Notref_の演算子はトークンに適用見つかりました。

C28305

トークンを解析することが検出されると、エラーが発生します。

C28306

パラメーターの注釈はたれかかっています。

C28307

パラメーターの注釈はたれかかっています。

C28350

注釈は、条件付きで適用できない状況を示します。

C28351

注釈は、動的な値 (変数) が条件のどこに使用できないことを示します。

CA1001

破棄可能なフィールドを所有する型は、破棄可能でなければなりません

CA1009

イベント ハンドラーを正しく宣言します

CA1016

アセンブリに AssemblyVersionAttribute を設定します

CA1033

インターフェイス メソッドは、子型によって呼び出し可能でなければなりません

CA1049

ネイティブ リソースを所有する型は、破棄可能でなければなりません

CA1060

P/Invoke を NativeMethods クラスに移動します

CA1061

基底クラス メソッドを非表示にしません

CA1063

IDisposable を正しく実装します

CA1065

予期しない場所に例外を発生させません

CA1301

重複するアクセラレータを使用しません

CA1400

P/Invoke エントリ ポイントは存在しなければなりません

CA1401

P/Invoke は参照可能であることはできません

CA1403

Auto 配置の型を COM 参照可能にすることはできません

CA1404

P/Invoke の直後に GetLastError を呼び出します

CA1405

COM 参照可能な型の基本型は COM 参照可能でなければなりません

CA1410

COM 登録メソッドは一致しなければなりません

CA1415

P/Invoke を正しく宣言します

CA1821

空のファイナライザーを削除します

CA1900

値型フィールドはポータブルでなければなりません

CA1901

P/Invoke 宣言はポータブルでなければなりません

CA2002

弱い ID を伴うオブジェクト上でロックしません

CA2100

SQL クエリのセキュリティ脆弱性を確認

CA2101

P/Invoke 文字列引数に対してマーシャリングを指定します

CA2108

値型での宣言セキュリティを確認します

CA2111

ポインターは参照可能にすることはできません

CA2112

セキュリティで保護された型はフィールドを公開してはなりません

CA2114

メソッド セキュリティは型のスーパーセットでなければなりません

CA2116

APTCA メソッドは APTCA メソッドのみを呼び出すことができます

CA2117

APTCA 型は APTCA 基本型のみを拡張することができます

CA2122

リンク要求を含むメソッドを間接的に公開しません

CA2123

オーバーライドのリンク確認要求はベースと同様です。

CA2124

脆弱性のある finally 句を外側の try でラップします

CA2126

型のリンク要求には継承要求が必要です

CA2131

セキュリティが重要な型は型の等価性に参加しないことがあります。

CA2132

既定のコンストラクターは、基本型の既定コンストラクターと同程度以上、重要であることが必要

CA2133

デリゲートは、一貫した透過性でメソッドにバインドしなければなりません

CA2134

メソッドと基本メソッドをオーバーライドする場合、一貫した透過性を保持する必要があります

CA2137

透過的メソッドは、検証可能な IL だけです

CA2138

透過的メソッドが、SuppressUnmanagedCodeSecurity 属性のメソッドを呼び出すことはできません

CA2140

透過的なコードではセキュリティが重要な重要項目を参照することはできません。

CA2141

透過的メソッドは LinkDemands を満たすことはできません

CA2146

型は、基本型およびインターフェイスと同程度以上、重要でなければならない

CA2147

透過的メソッドにはセキュリティ アサートを使用できない場合もあります。

CA2149

透過的メソッドは、ネイティブ コードを呼び出す必要があります

CA2200

スタック詳細を保持するために再度スローします。

CA2202

オブジェクトを複数回破棄しない

CA2207

値型のスタティック フィールドのインラインを初期化します

CA2212

サービス コンポーネントを WebMethod に設定しません

CA2213

破棄可能なフィールドは破棄されなければなりません

CA2214

コンストラクターのオーバーライド可能なメソッドを呼び出しません

CA2216

破棄可能な型はファイナライザーを宣言しなければなりません

CA2220

ファイナライザーは基底クラスのファイナライザーを呼び出さなければなりません

CA2229

シリアル化コンストラクターを実装します

CA2231

ValueType.Equals のオーバーライドで、演算子 equals をオーバーロードします。

CA2232

Windows フォームのエントリ ポイントを STAThread に設定します

CA2235

すべてのシリアル化不可能なフィールドを設定します

CA2236

ISerializable 型で基底クラス メソッドを呼び出します

CA2237

ISerializable 型を SerializableAttribute に設定します

CA2238

シリアル化メソッドを正しく実装します

CA2240

ISerializable を正しく実装します

CA2241

書式設定メソッドに正しい引数を提供

CA2242

NaN に対して正しくテストします