Compartilhar via


Conjunto de regras recomendadas misto

Microsoft misturado as regras para o mouse em na maioria dos problemas comuns e críticas em seus C++ projeto que dão suporte a Common Language Runtime, incluindo buracos na segurança em potencial, o aplicativo falhará, e outros erros importantes de lógica e de design.Você deve incluir esta regra definida em qualquer regra personalizada e cria C++ para seus projetos que dão suporte a Common Language Runtime.Este ruleset é criado para ser configurado com a edição do Visual Studio Professional ou superior.

Regra

Descrição

C6001

Usando a memória não inicializada

C6011

Desreferenciando o ponteiro nulo

C6029

Uso do valor desmarcado

C6031

Valor de retorno ignorado

C6053

Terminação nula de chamada

C6054

Ausentes zero de término

C6059

Concatenação incorreto

C6063

Argumento ausente de cadeia de caracteres para formatar a função

C6064

Argumento ausente de inteiro para formatar a função

C6066

Argumento ausente do ponteiro para formatar a função

C6067

Argumento ausente do ponteiro de cadeia de caracteres para formatar a função

C6101

Retornando a memória não inicializada

C6200

O índice exceder o máximo de buffer

C6201

O índice exceder o máximo do buffer de pilha

C6214

Conversão inválido HRESULT a BOOL

C6215

Conversão inválido BOOL a HRESULT

C6216

Conversão completo inserida inválido BOOL a HRESULT

C6217

Teste inválido de HRESULT com NOT

C6220

HRESULT inválidos comparam a -1

C6226

Atribuição inválido de HRESULT a -1

C6230

Uso inválido de HRESULT como booliano

C6235

Constante diferente de zero com ou realização

C6236

Realização ou com constante diferente de zero

C6237

Realização de zero com e perder efeitos colaterais

C6242

O local desenrola forçado

C6248

Criando uma DACL nulo

C6250

Descritores de endereço não-editados

C6255

Uso de Alloca desprotegido

C6258

Usar encerra o thread

C6259

Código inoperante em Bit a bit ou alternar limitado

C6260

Uso de aritmética de byte

C6262

Uso excessivo da pilha

C6263

Usando Alloca no loop

C6268

Parênteses ausentes em conversão

C6269

O ponteiro cancelará ignorado

C6270

Argumento ausente flutuante para formatar a função

C6271

Argumento adicional para formatar a função

C6272

Argumento de não float para formatar a função

C6273

Não inteiro Argumen para formatar a função

C6274

Argumento de não caracteres para formatar a função

C6276

Conversão de cadeia de caracteres inválido

C6277

Chame inválido de CreateProcess

C6278

Matriz- novo incompatibilidade de escalar DELETE

C6279

Escalar novo incompatibilidade de Matriz- DELETE

C6280

Incompatibilidade de Alocação- desalocação de memória

C6281

Precedência de bit a bit da relação

C6282

A atribuição substitui o teste

C6283

Matriz- novo incompatibilidade primitiva de escalar DELETE

C6284

Argumento inválido de objeto para a função format

C6285

Realização ou de constantes

C6286

Efeitos colaterais diferentes de zero ou perder realização

C6287

Teste redundante

C6288

A inclusão mútua sobre for falsa e realização

C6289

A exclusão mútua sobre for verdadeira ou realização

C6290

- Não lógico Bit a bit e precedência

C6291

- Não lógico Bit a bit ou precedência

C6292

O loop conta acima do máximo

C6293

O loop conta para baixo do mínimo

C6294

O corpo de loop nunca executado

C6295

Loop infinito

C6296

Loop executado apenas uma vez

C6297

Resultado da conversão do turno para o maior tamanho

C6299

Bitfield a comparação booliana

C6302

Argumento inválido de cadeia de caracteres para formatar a função

C6303

Todo o argumento inválido de cadeia de caracteres para formatar a função

C6305

Use incompatível de tamanho e de contagem

C6306

Chamada de função incorreta argumento de variável

C6308

Escape de Realloc

C6310

Constante ilegal de filtro de exceção

C6312

A exceção continua o loop de execução

C6314

Bit a bit ou precedência

C6317

Não complemento

C6318

A exceção continua Pesquisa

C6319

Ignorado por vírgula

C6324

A cópia da cadeia de caracteres em vez de cadeia de caracteres compara

C6328

Tipos incompatíveis potenciais de argumento

C6331

Sinalizadores de VirtualFree inválidos

C6332

Parâmetro inválido de VirtualFree

C6333

Tamanho de VirtualFree inválido

C6335

Identificador de escape do processo

C6381

Ausentes de informações de desligamento

C6383

Excesso de buffer de Byte- contagem de elementos contagem

C6384

Divisão do tamanho do ponteiro

C6385

Excesso de leitura

C6386

Excesso de gravação

C6387

Valor de parâmetro inválido

C6388

Valor de parâmetro inválido

C6500

Propriedade inválido de atributo

C6501

Conflitante valores de propriedade do atributo

C6503

As referências não podem ser nulas

C6504

Zero não no ponteiro

C6505

MustCheck em void

C6506

Tamanho do buffer não no ponteiro ou matriz

C6507

A incompatibilidade nula em cancelará zero

C6508

Acesso de gravação na constante

C6509

Retorno usado em pré-requisito

C6510

Zero não terminado no ponteiro

C6511

MustCheck deve ser Sim ou não

C6513

Tamanho do elemento sem tamanho do buffer

C6514

O tamanho do buffer excede o tamanho da matriz

C6515

Tamanho do buffer não no ponteiro

C6516

Nenhuma propriedade no atributo

C6517

Tamanho válido no buffer ilegível

C6518

Tamanho gravável no buffer não gravável

C6519

Anotação inválido: o valor da propriedade “NeedsRelease” Sim ou não deve ser

C6521

A cadeia de caracteres inválido de tamanho cancelará

C6522

Tipo inválido de cadeia de caracteres de tamanho

C6523

Parâmetro inválido de cadeia de caracteres de tamanho

C6525

Local acessível de cadeia de caracteres inválido de tamanho

C6526

Tipo de buffer inválido de cadeia de caracteres de tamanho

C6527

Anotação inválido: A propriedade “NeedsRelease” não pode ser usada em valores de tipo void

C6530

Estilo não reconhecido da cadeia de caracteres de formato

C6540

O uso de anotações de atributo nesta função invalidará todas as anotações existentes de __declspec

C6551

Especificação inválida de tamanho: expressão não parsable

C6552

Deref= inválido ou Notref=: expressão não parsable

C6701

O valor não é um válido e sim/não avalia talvez

C6702

O valor não é um valor de cadeia de caracteres

C6703

O valor não é um número)

C6704

Erro inesperado de expressão de anotação

C6705

O número esperado de argumentos da anotação não corresponde ao número real de casos da anotação

C6706

Erro inesperado de anotação de anotação

C6995

Falha ao salvar o arquivo de log de XML

C26100

Condição de corrida

C26101

Falha ao usar corretamente a operação bloqueada

C26110

O chamador não mantém o bloqueio

C26111

O chamador não liberar o bloqueio

C26112

O chamador não pode conter nenhum bloqueio

C26115

Falha ao liberar o bloqueio

C26116

Falha ao adquirir ou mantendo o bloqueio

C26117

Liberando o bloqueio de unheld

C26140

Erro de anotação de SAL de simultaneidade

C28020

A expressão não for verdadeira nessa chamada

C28021

O parâmetro que está sendo anotado deve ser um ponteiro

C28022

As classes da função nessa função não correspondem a classe da função no typedef usado para defini-lo.

C28023

A função que está sendo atribuído ou transmitidas deve ter uma anotação no mínimo uma de _Function_class_ da classe

C28024

O ponteiro de função que está sendo atribuído a for anotado com a classe da função, que não está presente na lista de classe da função.

C28039

O tipo de parâmetro real deve corresponder exatamente ao tipo

C28112

Uma variável que é acessado através de uma função bloqueada sempre deve ser acessado através de uma função bloqueada.

C28113

Acessando uma variável local por uma função bloqueada

C28125

A função deve ser chamada de uma exceto o bloco try/catch

C28137

O argumento de variável deve ser em vez de literal constante ()

C28138

O argumento deve ser constante em vez de variável

C28159

Considere usar outra função em seu lugar.

C28160

Anotação de erro

C28163

A função nunca deve ser chamado de dentro de uma exceto o bloco try/catch

C28164

O argumento está sendo passado a uma função que espera um ponteiro para um objeto (não um ponteiro para um ponteiro)

C28182

Desreferenciando o ponteiro NULL.O ponteiro contém o mesmo valor NULO que outro ponteiro fez.

C28183

O argumento pode ser um valor, e é uma cópia do valor localizado no ponteiro

C28193

A variável contém um valor que deve ser verificado

C28196

O requisito não estiver satisfeito. (A expressão não é avaliada como true.)

C28202

Referência ilegal do membro não estático

C28203

Referência ambígua ao membro da classe.

C28205

_Success_ ou _On_failure_ usado em um contexto ilegal

C28206

Pontos à esquerda do operando a uma estrutura, use “->”

C28207

O operando esquerdo é uma estrutura, use “.”

C28209

A declaração do símbolo tem uma declaração conflitante

C28210

As anotações para o contexto de __on_failure não devem estar pre no contexto explícita

C28211

Nome do contexto estático esperado para SAL_context

C28212

Expressão do ponteiro esperada de anotação

C28213

A anotação de _Use_decl_annotations_ deve ser usada para fazer referência, sem alteração, instrução anterior.

C28214

Os nomes de parâmetro de atributo devem ser p1 p9…

C28215

O typefix não pode ser aplicado a um parâmetro que já tenha um typefix

C28216

A anotação de checkReturn se aplica apenas aos postconditions para o parâmetro da função específica.

C28217

Para a função, o número de parâmetros para a anotação não corresponde ao localizado no arquivo

C28218

Para o paramteer de função, o parâmetro da anotação não corresponde ao localizado no arquivo

C28219

O membro de enumeração esperado para a anotação o parâmetro na anotação

C28220

A expressão de inteiro esperado para a anotação o parâmetro na anotação

C28221

Expressão de cadeia de caracteres esperada para o parâmetro na anotação

C28222

__yes, __no, ou __maybe esperado para a anotação

C28223

Não encontrou o token/identificador esperados da anotação, parâmetro

C28224

A anotação requer parâmetros

C28225

Não encontrou o número correto de parâmetros requeridos na anotação

C28226

A anotação não pode também ser um PrimOp (na instrução atual)

C28227

A anotação não pode também ser um PrimOp (consulte a instrução anterior)

C28228

Parâmetro da anotação: não pode ser usado em anotações

C28229

A anotação não da suporte a parâmetros

C28230

O tipo de parâmetro não tem nenhum membro.

C28231

A anotação é válida apenas na matriz

C28232

pre, postagem, ou deref não aplicado a qualquer anotação

C28233

pre, postagem, ou deref aplicado a um bloco

C28234

a expressão de __at não se aplica à função atual

C28235

A função pode não estar bem como uma anotação

C28236

A anotação não pode ser usada em uma expressão

C28237

A anotação no parâmetro não tem mais suporte

C28238

A anotação no parâmetro tem mais de um valor de, o stringValue, e de longValue.Use paramn=xxx

C28239

A anotação no parâmetro tem ambos, avaliar o stringValue, ou o longValue; e paramn=xxx.Use somente paramn=xxx

C28240

A anotação no parâmetro não tiver param2 mas nenhum param1

C28241

A anotação para a função no parâmetro não é reconhecida

C28243

A anotação para a função no parâmetro requer mais cancelará do tipo real anotado reserva

C28244

A anotação para a função tem um parâmetro unparseable/anotação externo

C28245

A anotação para a função “anota essa” em uma função não-membro-

C28246

A anotação do parâmetro da função não corresponde ao tipo do parâmetro

C28250

Anotação inconsistente para a função: a instância anterior tem um erro.

C28251

Anotação inconsistente para a função: esta instância tiver um erro.

C28252

Anotação inconsistente para a função: o parâmetro tem uma outras anotações nesta instância.

C28253

Anotação inconsistente para a função: o parâmetro tem uma outras anotações nesta instância.

C28254

o dynamic_cast<>() não têm suporte nas anotações

C28262

Um erro de sintaxe na anotação foi encontrado na função, para a anotação

C28263

Um erro de sintaxe em uma anotação condicional foi localizado para a anotação intrínseca

C28264

Os valores das listas de resultados devem ser constantes.

C28267

Um erro de sintaxe nas anotações anotação foi encontrada na função.

C28272

A anotação para a função, revise parâmetro quando for inconsistente com a declaração de função

C28273

Para a função, encontrar pistas forem inconsistentes com a declaração de função

C28275

O parâmetro para o _Macro_value_ for nulo

C28279

Para iniciar o símbolo “,” foi encontrado “sem uma extremidade correspondente”

C28280

Para o símbolo, uma “end” não foi encontrada uma correspondência “iniciado”

C28282

As cadeias de formato devem estar nas condições anteriores

C28285

Para a função, erro de sintaxe do parâmetro

C28286

Para a função, erro de sintaxe na extremidade

C28287

Para a função, erro de sintaxe na anotação de _At_() (nome do parâmetro não reconhecido)

C28288

Para a função, erro de sintaxe na anotação de _At_() (nome de parâmetro inválido)

C28289

Para a função: ReadableTo ou WritableTo não tinha as especificações associado como um parâmetro.

C28290

a anotação para a função Externals contém mais do que o número real de parâmetros

C28291

nulo/notnull de postagem no nível 0 de deref não tem sentido para a função.

C28300

Operandos da expressão de tipo incompatíveis para o operador

C28301

Nenhuma anotações para a primeira declaração da função.

C28302

Um operador adicional de _Deref_ foi encontrado na anotação.

C28303

Um operador ambíguo de _Deref_ foi encontrado na anotação.

C28304

Um operador de forma incorreta colocado de _Notref_ foi encontrado aplicado ao token.

C28305

Um erro quando analisar um token foi descoberta.

C28306

A anotação no parâmetro é obsoleto

C28307

A anotação no parâmetro é obsoleto

C28350

A anotação descreve uma situação que não é condicional aplicável.

C28351

A anotação descreve onde um valor dinâmico uma variável () não pode ser usado na condição.

CA1001

Tipos que possui campos descartáveis deve ser descartável

CA1009

Declare manipuladores de eventos corretamente

CA1016

Marcar os assemblies com AssemblyVersionAttribute

CA1033

Os métodos da interface devem estar acessíveis por tipos de filho

CA1049

Tipos que possui recursos nativos deve ser descartável

CA1060

Mover P/Invokes à classe de NativeMethods

CA1061

Não ocultar métodos da classe base

CA1063

Implemente corretamente IDisposable

CA1065

Não digite as exceções em locais inesperados

CA1301

Evite aceleradores duplicados

CA1400

Os pontos de entrada de P/Invoke devem existir

CA1401

P/Invokes não deve ser visível

CA1403

Os tipos de layout automático não deve ser visível COM

CA1404

Chame GetLastError imediatamente depois de P/Invoke

CA1405

Os tipos de base visíveis de tipo COM o devem ser visível COM

CA1410

Os métodos de registro COM o devem ser correspondidos

CA1415

Declare P/Invokes corretamente

CA1821

Remova os finalizers vazias

CA1900

Os campos do tipo de valor devem ser portáteis

CA1901

As declarações de P/Invoke devem ser portáteis

CA2002

Não bloqueie em objetos de identidade fraco

CA2100

Revise consultas SQL para vulnerabilidades de segurança

CA2101

Especifique que o marshaling para argumentos de cadeia de caracteres de P/Invoke

CA2108

Segurança declarativa revisão em tipos de valor

CA2111

Os ponteiros não devem ser visíveis

CA2112

Os tipos não seguros deve expor campos

CA2114

A segurança do método deve ser um superconjunto do tipo

CA2116

Os métodos de APTCA só devem chamar métodos de APTCA

CA2117

Os tipos de APTCA só devem estender tipos de base de APTCA

CA2122

Não expõe métodos indiretamente com as demandas de link

CA2123

As demandas do link de substituição devem ser idênticas com base

CA2124

Cláusulas vulneráveis de quebra automática finalmente tente externa

CA2126

As demandas do link do tipo exigem demandas de herança

CA2131

Os tipos críticos de segurança não podem participar da equivalência do tipo

CA2132

Os construtores padrão devem ser pelo menos críticos quanto construtores padrão do tipo de base

CA2133

O delega devem associar a transparência consistente com métodos

CA2134

Os métodos devem manter a transparência consistente ao substituir métodos de base

CA2137

Os métodos transparentes devem conter apenas o IL verificável

CA2138

Os métodos transparentes não devem chamar métodos com o atributo de SuppressUnmanagedCodeSecurity

CA2140

O código transparente não deve referenciar itens críticos de segurança

CA2141

Os métodos transparentes não devem satisfazer LinkDemands

CA2146

Os tipos devem ser pelo menos críticos quanto os tipos de base e interfaces

CA2147

Os métodos transparentes não podem usar segurança afirmam

CA2149

Os métodos transparentes não devem chamar em código nativo

CA2200

Lançar novamente para preservar detalhes da pilha

CA2202

Não remove objetos várias vezes

CA2207

Inicializar os campos estáticos de tipo de valor de tabela embutida

CA2212

Não marque componentes atendidos com WebMethod

CA2213

Os campos descartáveis devem ser removidos

CA2214

Não chame métodos overridable nos construtores

CA2216

Os tipos descartáveis devem declarar o finalizador

CA2220

Finalizers deve chamar o finalizador da classe base

CA2229

Construtores de serialização de ferramentas

CA2231

Operador de igual de sobrecarga em substituir ValueType.Equals

CA2232

Pontos de entrada do Windows Forms de marca a STAThread

CA2235

Marcar todos os campos não serializáveis

CA2236

Chamar métodos da classe base em tipos de ISerializable

CA2237

Marcar tipos de ISerializable com SerializableAttribute

CA2238

Implementar os métodos de serialização corretamente

CA2240

Implementar ISerializable corretamente

CA2241

Forneça argumentos corretos para formatação métodos

CA2242

Teste para NaN corretamente