Compartir a través de


Conjunto de reglas Reglas recomendadas nativas

Las reglas nativas recomendadas se centran en los problemas más graves y habituales del código nativo, incluidas posibles vulnerabilidades de seguridad y bloqueos de la aplicación. Debe incluir este conjunto de reglas en todos los conjuntos de reglas personalizados que cree para sus proyectos nativos. Este conjunto de reglas está diseñado para funcionar con Visual Studio Professional y versiones posteriores.

Regla

Descripción

C6001

Usar la Memoria sin inicializar.

C6011

Desreferenciar el puntero nulo.

C6029

Uso del valor sin comprobar.

C6031

Valor devuelto omitido

C6053

Terminación en cero de la llamada

C6054

Falta de terminación en cero

C6059

Concatenación incorrecta

C6063

Argumento de cadena que falta para dar formato a la función

C6064

Argumento entero ausente para dar formato a la función

C6066

Argumento puntero ausente para dar formato a la función

C6067

Argumento de puntero de cadena ausente para dar formato a la función

C6101

Devolver la memoria no inicializada

C6200

El índice supera el máximo del búfer

C6201

El índice supera el máximo del búfer de pila

C6214

Conversión no válida HRESULT a BOOL

C6215

Conversión no válida BOOL a HRESULT

C6216

Conversión insertada por compilador no válida BOOL a HRESULT

C6217

Prueba HRESULT no válida con NOT

C6220

HRESULT no válido en comparación con -1

C6226

Asignación no válida de HRESULT cómo -1

C6230

Uso no válido de HRESULT como booleano

C6235

Constante distinta de cero con operador lógico Or

C6236

Operador lógico Or con constante distinta de cero

C6237

Cero con operador lógico AND pierde efectos secundarios

C6242

Desenredo local forzado

C6248

Crear una DACL Nula

C6250

Descriptores inéditos de dirección

C6255

Uso desprotegido de Alloca

C6258

Usar el subproceso finalizar

C6259

Código no alcanzado en interruptor limitado por operador en el nivel de bits Or

C6260

Uso de la Aritmética de Byte

C6262

Uso excesivo de pila

C6263

Usar Alloca en bucle

C6268

Faltan paréntesis en la conversión

C6269

Puntero de desreferenciación omitido

C6270

Falta el argumento Float para dar formato ala función

C6271

Argumento adicional para dar formato a la función

C6272

Argumento no Float para dar formato a la función

C6273

Argumento no Entero para dar formato a la función

C6274

Argumento no Carácter para dar formato a la función

C6276

Conversión no válida de cadena

C6277

Llamada no válida de CreateProcess

C6278

No coincidencia de Matriz-Nuevo Escalar-Eliminar

C6279

No coincidencia de Escalar-Nueva Matriz-Eliminar

C6280

No coincidencia de Asignación-Desasignación de memoria

C6281

Precedencia de la relación de operador en el nivel de bits

C6282

Asignación remplaza prueba

C6283

Error de coincidencia en Matriz Primitiva-Nuevo Escalar-Eliminar

C6284

Argumento objeto no válido para dar formato a la función

C6285

Operador lógico Or de constantes

C6286

Operador lógico Or distinto de cero que pierde efectos secundarios

C6287

Prueba redundante

C6288

Inclusión mutua del operador lógico AND es falsa

C6289

La exclusión mutua sobre el operador lógico or es verdadera

C6290

Prioridad entre operadores NOT lógico y AND bit a bit

C6291

Prioridad entre operadores NOT lógico y OR bit a bit

C6292

Recuento de un máximo de bucles

C6293

Recuento de un mínimo de bucles

C6294

Cuerpo del bucle nunca ejecutado

C6295

Bucle infinito

C6296

Bucle ejecutado una vez

C6297

Resultado de la conversión con desplazamiento a un mayor tamaño

C6299

Campo de bits a comparación booleana

C6302

Argumento de cadena de carácter no válido para dar formato a la función

C6303

Argumento de cadena de caracteres anchos no válido para dar formato a la función

C6305

Error de coincidencia en tamaño y recuento de uso

C6306

Llamada de función con argumento variable incorrecta

C6308

Pérdidas por Realloc

C6310

Constante no válida del filtro de excepciones

C6312

Excepción bucle de ejecución continuo

C6314

Precedencia del operador bit a bit Or

C6317

Complemento No No

C6318

Excepción continuar la búsqueda

C6319

Omitido por coma

C6324

Copia de la cadena en lugar de la comparación de la cadena

C6328

Error de coincidencia de tipo de argumento potencial

C6331

Marcas VirtualFree no válidas

C6332

Parámetro no válido VirtualFree

C6333

Tamaño no válido VirtualFree

C6335

Controlador del proceso con pérdidas

C6381

Falta de información de apagado

C6383

Saturación del búfer de recuento de elemento y recuento de bytes

C6384

División de tamaño de puntero

C6385

Saturación de lectura

C6386

Saturación de escritura

C6387

Valor de parámetro no válido

C6388

Valor de parámetro no válido

C6500

Propiedad no válida del atributo

C6501

Valores de propiedad de atributo en conflicto

C6503

Las referencias no pueden ser nulas

C6504

NULL en un no Puntero

C6505

MustCheck en vacío

C6506

Tamaño de búfer en no Puntero o matriz

C6507

Desigualdad Null en desreferenciación cero

C6508

Acceso de escritura en constante

C6509

Retorno utilizado en condición previa

C6510

Null finalizado en no Puntero

C6511

La propiedad MustCheck debe ser Sí o No

C6513

Tamaño de elemento sin tamaño de búfer

C6514

El tamaño de búfer supera el tamaño de la matriz

C6515

Tamaño de búfer en no Puntero

C6516

Ninguna propiedad en el atributo

C6517

Tamaño válido en búfer no Legible

C6518

Tamaño de escritura en búfer no modificable

C6519

Anotación inválida: el valor de propiedad 'NeedsRelease' debe ser Sí o No.

C6521

Desreferenciación de la cadena de tamaño no válido

C6522

Tipo tamaño de cadena no válido

C6523

Parámetro de cadena de tamaño no válido

C6525

Ubicación inalcanzable de la cadena de tamaño no válida

C6526

Tipo del búfer del tamaño de cadena no válido

C6527

Anotación no válida: La propiedad 'NeedsRelease' no se puede utilizar en valores de tipo void

C6530

Estilo desconocido del formato de la cadena

C6540

El uso de anotaciones de atributo en esta función invalidará todas las anotaciones __declspec existentes

C6551

Especificación de tamaño no válida: expresión no analizable

C6552

Deref= no válida o Notref=: expresión no analizable

C6701

Este no es un valor Sí/No/Quizás válido

C6702

El valor no es un valor de cadena

C6703

El valor no es un número

C6704

Error inesperado en la expresión de anotación

C6705

El número esperado de argumentos para la anotación no coincide con el número real de argumentos para la anotación

C6706

Error inesperado de Anotación para anotaciones

C6995

No se pudo guardar el archivo de registro XML

C26100

Condición de carrera

C26101

La operación entrelazada no se usó correctamente

C26110

El llamador no puede mantener el bloqueo

C26111

El llamador no puede liberar el bloqueo

C26112

El llamador no puede mantener ningún bloqueo

C26115

Error al liberar el bloqueo

C26116

Error al adquirir o mantener el bloqueo

C26117

Liberar el bloqueo no retenido

C26140

Error de anotación SAL de simultaneidad

C28020

La expresión no es verdadera en esta llamada.

C28021

El parámetro anotado debe ser un puntero

C28022

Las clases de función de esta función no coinciden con las clases de función del typedef usado para definirla.

C28023

La función que se va a asignar o pasar debe tener una anotación _Function_class_ para al menos una de las clases

C28024

El puntero a función al que se asigna tiene anotada la clase de función, no incluida en la lista de clases de funciones.

C28039

El tipo del parámetro actual debe coincidir exactamente con el tipo

C28112

A una variable a la que se tiene acceso mediante una función Interlocked siembre se debe obtener acceso mediante una función Interlocked.

C28113

Acceso a una variable local mediante una función Interlocked

C28125

Debe llamarse a la función desde un bloque try/except

C28137

La variable de argumento debería ser una constante (literal)

C28138

Los argumentos constantes deberían ser variables

C28159

Considere utilizar otra función en su lugar.

C28160

anotación Error

C28163

No debe llamarse nunca a la función desde un bloque try/except

C28164

El argumento se está pasando a una función que espera un puntero a un objeto (no un puntero a un puntero)

C28182

Desreferenciando el puntero NULL.El puntero contiene el mismo valor NULL que otro puntero.

C28183

El argumento no puede ser un valor, y es una copia del valor encontrado en el puntero

C28193

La variable contiene un valor que debe ser examinado

C28196

El requisito no se cumple. (La expresión no se evalúa como true.)

C28202

Referencia no válida a un miembro no estático.

C28203

Referencia ambigua a un miembro de clase.

C28205

Se usó _Success_ u _On_failure_ en un contexto no válido

C28206

Puntos izquierdo del operando un struct, use “->”

C28207

El operando izquierdo es un struct, use '.'

C28209

La declaración del símbolo tiene una declaración en conflicto

C28210

Las anotaciones para el contexto _on_failure_ no deben estar en un contexto previo explícito:

C28211

Se esperaba un nombre de contexto estático para SAL_context.

C28212

Expresión de puntero esperada para la anotación

C28213

La anotación _Use_decl_annotations_ se debe usar para hacer referencia, sin modificación, a una declaración anterior.

C28214

Los nombres de atributo de parámetros deben ser p1...p9

C28215

typefix no se puede aplicar a un parámetro que ya tenga un typefix

C28216

La anotación de checkReturn solicita solo a las condiciones posteriores el parámetro de la función específica.

C28217

Para la función, el número de parámetros para la anotación no coincide con el encontrado en el archivo.

C28218

Para el parámetro de la función, el parámetro de anotación no coincide con el que se ha encontrado en el archivo

C28219

Se esperaba un miembro de enumeración para el parámetro de la anotación

C28220

Expresión de entero esperada para anotación el parámetro en la anotación

C28221

Expresión de cadena esperada para el parámetro en la anotación

C28222

__si, __no, or __quizás esperado para la anotación

C28223

No se encontró el token o identificador esperado para el parámetro de la anotación

C28224

La anotación requiere parámetros

C28225

No se encontró el número correcto de parámetros requeridos en la anotación

C28226

La anotación no puede ser también un elemento PrimOp (en la declaración actual)

C28227

La anotación no puede ser también un elemento PrimOp (ver declaración anterior)

C28228

Parámetro de anotación: no puede utilizar tipos en anotaciones

C28229

La anotación no admite parámetros.

C28230

El tipo de parámetro no tiene ningún miembro.

C28231

La anotación sólo es válida en la matriz

C28232

pre, post o deref no se aplican a ninguna anotación

C28233

pre, post o deref se aplican a un bloque

C28234

La expresión __at no se aplica a la función actual

C28235

La función no puede usarse de forma independiente como anotación

C28236

La anotación no se puede usar en una expresión

C28237

Ya no se admite la anotación en el parámetro

C28238

La anotación en el parámetro tiene más de un elemento value, stringValue y longValue.Use paramn=xxx

C28239

la anotación en el parámetro tiene tanto un elemento value como stringValue o longValue, además de paramn=xxx.Use solamente paramn=xxx.

C28240

La anotación en el parámetro tiene un elemento param2 pero no param1

C28241

La anotación para la función de parámetro no se reconoce

C28243

La anotación de la función en el parámetro requiere más desreferencias de las que permite el tipo anotado real.

C28244

La anotación de la función tiene un parámetro o anotación externa que no se puede analizar.

C28245

La anotación de la función anota 'this' en una función no miembro.

C28246

La anotación de parámetro para función no coincide con el tipo de parámetro

C28250

Anotación incoherente para la función: la instancia anterior tiene un error.

C28251

Anotación incoherente para la función: esta instancia tiene un error.

C28252

Anotación incoherente para la función: el parámetro tiene otras anotaciones en esta instancia.

C28253

Anotación incoherente para la función: el parámetro tiene otras anotaciones en esta instancia.

C28254

dynamic_cast<>() no se admite en anotaciones

C28262

Se encontró un error de sintaxis de anotación en la función, para la anotación

C28263

Se encontró un error de sintaxis en una anotación condicional para la anotación de tipo intrínseco

C28264

Los valores de las listas de resultados deben ser constantes.

C28267

Se encontró un error de sintaxis de anotaciones en la función para la anotación.

C28272

El parámetro de la anotación de la función al examinar no es coherente con la declaración de la función

C28273

Para la función, las pistas no son coherentes con la declaración de la función

C28275

El parámetro para _Macro_value_ es nulo

C28279

Para el símbolo, se encontró un elemento 'begin' sin el elemento 'end' correspondiente

C28280

Para el símbolo se encontró un elemento 'end' sin el elemento 'begin' correspondiente

C28282

Las cadenas de formato deben estar en las condiciones previas

C28285

Para la función, error de sintaxis en parámetro

C28286

Para la función, error de sintaxis cerca del final

C28287

Para la función, error de sintaxis en la anotación _At_() (nombre de parámetro no reconocido)

C28288

Para la función, error de sintaxis en la anotación _At_() (nombre de parámetro no válido)

C28289

Para la función: ReadableTo o WritableTo no tenían una especificación de límite como parámetro

C28290

La anotación de la función contiene más valores External que el número real de parámetros

C28291

null/notnull posterior en el nivel 0 de desreferenciación carece de sentido para la función.

C28300

Los operandos de expresión de tipos no son compatibles para el operador

C28301

Ninguna anotación para la primera declaración de la función.

C28302

Se encontró un operador adicional de _Deref_ en la anotación.

C28303

Se encontró un operador ambiguo de _Deref_ en la anotación.

C28304

Se encontró un operador incorrectamente colocado de _Notref_ aplicado al token.

C28305

Se detectó un error mientras analizaba un token.

C28306

La anotación en parámetro es obsoleta

C28307

La anotación en parámetro es obsoleta

C28350

La anotación describe una situación no aplicable de forma condicional.

C28351

La anotación describe dónde no se puede usar un valor dinámico (una variable) en la condición.