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

混合 Microsoft は一般的な規則に重点を置くことを、共通言語ランタイムに、潜在的なセキュリティ ホール、アプリケーション クラッシュする、他の重要なロジックやデザイン エラー サポートする C++ の重要な問題は、プロジェクト。共通言語ランタイムをサポートする C++ 用にカスタマイズした方法に設定して作成するプロジェクトこの規則セットを含める必要があります。この規則セットは、 Visual Studio Professional Edition 設定されるように、上位に設計されています。

規則

Description

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

-1 との無効な HRESULT 比較

C6226

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

C6230

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

C6235

0 でない定数と論理 Or

C6236

論理 Or と 0 でない定数

C6237

0 と論理 And での副作用の消失

C6242

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

C6248

Null DACL の作成

C6250

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

C6255

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

C6258

Terminate Thread の使用

C6259

ビットごとの Or で制限される Switch で実行されないコード

C6260

バイト算術の使用

C6262

過剰なスタック使用

C6263

ループでの Alloca の使用

C6268

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

C6269

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

C6270

Format 関数への Float 引数がない

C6271

Format 関数への余分な引数

C6272

Format 関数への Float でない引数

C6273

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

C6274

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

C6276

無効な文字列のキャスト

C6277

無効な CreateProcess 呼び出し

C6278

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

C6279

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

C6280

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

C6281

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

C6282

代入をテストに置き換え

C6283

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

C6284

関数を書式設定無効な引数オブジェクト

C6285

定数の論理 Or

C6286

0 でない論理 Or での副作用の消失

C6287

冗長テスト

C6288

論理 And での相互包括は False

C6289

論理 Or での相互排他は True

C6290

論理 Not とビットごとの And の優先順位

C6291

論理 Not とビットごとの 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

逆参照が 0 での Null の不一致

C6508

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

C6509

前提条件で使用される Return

C6510

非ポインターでの Null 終了

C6511

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

C6513

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

C6514

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

C6515

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

C6516

属性にプロパティがない

C6517

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

C6518

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

C6519

無効な注釈です: NeedsRelease " プロパティの値は Yes または No でなければなりません

C6521

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

C6522

無効なサイズの文字列型

C6523

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

C6525

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

C6526

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

C6527

無効な注釈です: 「NeedsRelease のプロパティは、 void 型の値で使用されることがあります。

C6530

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

C6540

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

C6551

無効なサイズの仕様 (CLS: 解析できる式

C6552

無効な Deref= か Notref=: 解析できる式

C6701

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

C6702

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

C6703

値が数値以外です

C6704

予期しないコメントの式のエラー

C6705

注釈の引数の数は想定した注釈の引数の実際の数が一致しません

C6706

注釈の予期しないコメントのエラー

C6995

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

C26100

競合状態

C26101

インタロックされた操作が正しく使用されていないことを

C26110

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

C26111

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

C26112

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

C26115

ロックの解放の失敗

C26116

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

C26117

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

C26140

同時実行 SAL 注釈エラー

C28020

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

C28021

注釈パラメーターはポインターである必要があります。

C28022

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

C28023

代入したり、渡された関数は、クラスの 1 回以上の _Function_class_ の注釈が必要です

C28024

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

C28039

実際のパラメーターの型は、その型と一致する必要があります。

C28112

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

C28113

インタロックされた関数によってローカル変数にアクセスできます。

C28125

関数は、から/ブロックを除く呼び出す必要があります。

C28137

変数引数は、代わりにのリテラル ()定数にする必要があります

C28138

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

C28159

別の関数を代わりに使用することを検討してください。

C28160

Error 注釈

C28163

関数は、から/ブロックを除く、内部呼び出すことはできません

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

注釈、パラメーターで予測されるトークンまたは ID を取得

C28224

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

C28225

注釈の必須パラメーターの正しい数を取得

C28226

注釈は、 PrimOp はにできません (現在の宣言内)

C28227

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

C28228

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

C28229

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

C28230

パラメーターの型にメンバーがありません。

C28231

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

C28232

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

C28233

前に、ブロックに適用されるポスト、または 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

関数の注釈は 「非メンバー関数のこれに注釈を付けます。

C28246

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

C28250

関数の不整合な注釈です: 前のインスタンスにエラーがあります。

C28251

関数の不整合な注釈です: このインスタンスにエラーがあります。

C28252

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

C28253

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

C28254

dynamic_cast<> は、注釈で ()はサポートされません

C28262

コメントの構文エラーは、注釈の関数で取得

C28263

条件付きのコメントの構文エラーは主な注釈の検索

C28264

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

C28267

コメントの構文エラーは関数で取得注釈いません。

C28272

チェックが関数宣言と矛盾しているときに、関数、パラメーターに注釈

C28273

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

C28275

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

C28279

シンボルに対して、 「begin は一致 " end なしで取得

C28280

シンボルに対して、 「end は一致 " begin なしで取得

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

透過的メソッドは、LinkDemand を満たしてはならない

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 に対して正しくテストします