Compartir a través de


Errores del compilador de C3300 a C3399

En los artículos de esta sección de la documentación se explican un subconjunto de los mensajes de error generados por el compilador.

Importante

Las herramientas de compilación y los compiladores de Visual Studio pueden notificar muchas clases de errores y advertencias. Después de encontrar un error o una advertencia, las herramientas de compilación pueden realizar suposiciones sobre la intención del código e intentar continuar, por lo que pueden notificar más problemas al mismo tiempo. Si las herramientas hacen una suposición incorrecta, es posible que los errores o advertencias posteriores no se apliquen al proyecto. Cuando corrija problemas en el proyecto, empiece siempre por el primer error o advertencia notificados y recompile a menudo. Una corrección puede hacer que desaparezcan muchos errores posteriores.

Para obtener ayuda con un mensaje de diagnóstico concreto en Visual Studio, seleccione la ventana Salida y pulse la tecla F1. Visual Studio abre la página de documentación para ese error, si existe. También puede usar la herramienta de búsqueda en la parte superior de la página para buscar artículos sobre advertencias o errores específicos. O bien examine la lista de errores y advertencias por herramienta y escriba en la tabla de contenido de esa página.

Nota:

No se documentan todos los errores o advertencias de Visual Studio. En muchos casos, el mensaje de diagnóstico proporciona toda la información disponible. Si ha llegado a esta página cuando ha usado F1 y cree que el mensaje de error o advertencia necesita una explicación adicional, háganoslo saber. Puede usar los botones de comentarios de esta página para notificar un problema de documentación en GitHub. Si cree que el error o la advertencia son incorrectos o ha encontrado otro problema con el conjunto de herramientas, notifique un problema de producto en el sitio de Developer Community. También puede enviar comentarios y notificar errores en el IDE. En Visual Studio, vaya a la barra de menús y seleccione Ayuda > Enviar comentarios > Notificar un problema, o bien envíe una sugerencia desde Ayuda > Enviar comentarios > Enviar una sugerencia. Se han creado algunos temas de error del compilador que el compilador no emite y ahora se redirigen a esta página, alternativamente.

Puede encontrar ayuda adicional sobre errores y advertencias en los foros de Preguntas y respuestas de Microsoft Learn. O bien busque el número de error o advertencia en el sitio de Developer Community de Visual Studio C++. También puede buscar soluciones en Stack Overflow.

Para obtener vínculos a ayuda adicional y recursos de la comunidad, consulte Ayuda y comunidad de Visual C++.

Mensajes de error

Error Mensaje
Error del compilador C3300 "symbol": formato incorrecto para el valor "value" del IDL.
Error del compilador C3301 coclass”: coclass no puede ser una interfaz ”symbol”.
Error del compilador C3302 "identifier": el identificador tiene más de number caracteres.
Error del compilador C3303 "attribute": el atributo solo se puede usar en "type".
Error del compilador C3304 Obsoleto.
Error del compilador C3305 Obsoleto.
Error del compilador C3306 "template": no se permite usar valores genéricos o de plantilla de clases sin nombre.
Error del compilador C3307 "module": no se puede crear el módulo del IDL.
Error del compilador C3308 "function": no se admite una llamada directa mediante la clase importada.
Error del compilador C3309 "macro/keyword": el nombre del módulo no puede ser una macro ni una palabra clave.
Error del compilador C3310 "identifier": conflicto con el nombre del módulo.
Error del compilador C3311 Se debe definir el atributo de módulo en un ámbito global.
Error del compilador C3312 No se ha encontrado ninguna función "identifier" para el tipo "type".
Error del compilador C3313 "identifier": la variable no puede tener el tipo "type".
Error del compilador C3314 "symbol": no es un tipo de módulo del IDL admitido.
Error del compilador C3315 "function": debe ser una función miembro.
Error del compilador C3316 "type": una matriz de tamaño desconocido no se puede usar en una instrucción for basada en intervalo.
Error del compilador C3317 "identifier": no se puede usar una función de sobrecarga como expresión en una instrucción for basada en intervalo.
Error del compilador C33181 "type": una matriz no puede tener un tipo de elemento que contenga ”auto".
Error del compilador C3319 Obsoleto.
Error del compilador C3320 "type": el tipo no puede tener el mismo nombre que la propiedad de módulo "name".
Error del compilador C3321 En este contexto no se espera ninguna lista de inicializadores.
Error del compilador C3322 "property": no es una propiedad válida para el atributo "attribute".
Error del compilador C3323 "alignas" y "__declspec(align)" no se permiten en declaraciones de función.
Error del compilador C3324 "property": la propiedad se repite en más de una ocasión en el atributo "attribute".
Error del compilador C3325 "attribute": el atributo tiene demasiados argumentos.
Error del compilador C3326 "value": no es un valor válido para la propiedad "property" del atributo "attribute".
Error del compilador C3327 "property": debe especificarse el valor de la propiedad del atributo "attribute".
Error del compilador C3328 "attribute": el atributo no tiene suficientes argumentos.
Error del compilador C3329 Error de sintaxis: se esperaba "token1", no "token2".
Error del compilador C3330 "function": una función no puede devolver una matriz "type".
Error del compilador C3331 "identifier": los atributos en parámetros solo se permiten en coclases e interfaces COM.
Error del compilador C3332 "property": la gramática es incoherente; la propiedad "property" es necesaria y tiene un valor predeterminado.
Error del compilador C3333 "library": una biblioteca de tipos dañada no se puede importar (#import).
Error del compilador C3334 una biblioteca de tipos dañada no se puede importar (#import)
Error del compilador C3335 "identificador": puede haber como máximo una interfaz predeterminada para una coclase "class".
Error del compilador C3336 Esta operación se debe realizar en un ámbito de clase.
Error del compilador C3337 "identifier": defaultvtable debe ser un origen de eventos para una coclase "class".
Error del compilador C3338 "identificador": puede haber como máximo una interfaz predeterminada que sea además un origen de eventos para una coclase "class".
Error del compilador C3339 el parámetro de plantilla requiere "class" o "typename" después de la lista de parámetros
Error del compilador C3340 "identifier": la interfaz no puede ser "restricted" y "default" en la coclase "class".
Error del compilador C3341 "interface": una interfaz defaultvtable debe ser "dual" o "custom".
Error del compilador C3342 "identifier": atributo ambiguo.
Error del compilador C3343 "class::name": el identificador de atributo tiene demasiados caracteres.
Error del compilador C3344 No se puede definir una especialización explícita ni una especialización parcial de "symbol".
Error del compilador C3345 "name": identificador no válido para el nombre del módulo.
Error del compilador C3346 Declaración exportada a un ámbito diferente del espacio de nombres.
Error del compilador C3347 "argument": el argumento obligatorio no se especifica en attribute-name.
Error del compilador C3348 Las plantillas exportadas no forman parte de los estándares actuales de C++.
Error del compilador C3349 "class::member": el atributo de multidifusión ya se ha implementado mediante el proveedor provider-name.
Error del compilador C3350 "function": un constructor delegado espera argumentos number.
Error del compilador C3351 "function": si se pasa una instancia de objeto NULL a un constructor delegado, también se debe pasar la dirección de una función miembro estática.
Error del compilador C3352 "function": la función especificada no coincide con el tipo delegado "type".
Error del compilador C3353 "identifier": un delegado solo se puede crear desde una función global o miembro de un tipo administrado o WinRT.
Error del compilador C3354 "identifier": la función usada para crear un delegado no puede tener el tipo de valor devuelto "type".
Error del compilador C3355 "class::member": el atributo de multidifusión escucha al proveedor "provider1", pero lo implementa el proveedor "provider2".
Error del compilador C3356 "identifier": no se puede llamar a un atributo de multidifusión con un nombre completo.
Error del compilador C3357 "attribute": el atributo es ambiguo, debe usar un nombre completo.
Error del compilador C3358 "symbol": no se ha encontrado el símbolo.
Error del compilador C3359 "specialization": no se puede especializar la plantilla.
Error del compilador C3360 "string": no se puede crear name.
Error del compilador C3361 No existe ningún contexto para action.
Error del compilador C3362 "class::member": el atributo multidifusión no se ha implementado.
Error del compilador C3363 "identifier": "typeid" solo se puede aplicar a un tipo.
Error del compilador C3364 "function": argumento para constructor delegado no válido; el destino delegado tiene que ser un puntero a una función miembro.
Error del compilador C3365 Operador "operator": diferencia de operandos de los tipos "type" y "type".
Error del compilador C3366 "member": los miembros de datos estáticos de los tipos administrados o WinRT se deben definir en la definición de clase.
Error del compilador C3367 "function": no se puede usar la función estática para crear un delegado sin enlazar.
Error del compilador C3368 "declarator": convención de llamada no válida para IDL.
Error del compilador C3369 "module": idl_module ya se ha definido.
Error del compilador C3370 "module": idl_module no se ha definido aún.
Error del compilador C3371 'idl_module': aquí solo se permite la propiedad 'name'
Error del compilador C3372 Debe especificar al menos una interfaz para el atributo "atribute" en una coclase.
Error del compilador C3373 El atributo "attribute" no acepta argumentos, a excepción de en una coclase.
Error del compilador C3374 No puede tomar la dirección de "function" a menos que se cree la instancia delegadada.
Error del compilador C3375 "function": función delegada ambigua.
Error del compilador C3376 "template": solo se permiten plantillas de miembros de datos estáticos.
Error del compilador C3377 No se permite "decltype(auto)" en una expresión nueva (obsoleto en Visual Studio 2022).
Error del compilador C3378 Solo se puede exportar una declaración desde una unidad de interfaz de módulo.
Error del compilador C3379 "class": una clase anidada no puede tener un especificador de acceso al ensamblado como parte de su declaración.
Error del compilador C3380 "specifier": especificador de acceso de ensamblado no válido; solo se permite "public" o "private".
Error del compilador C3381 "specifier": los especificadores de acceso al ensamblado solo están disponibles en el código compilado con la opción /clr.
Error del compilador C3382 'sizeof' no se admite con /clr:safe
Error del compilador C3383 'operator new' no se admite con /clr:safe
Error del compilador C3384 "type": las restricciones de valor y de referencia se excluyen mutuamente.
Error del compilador C3385 "function": una función con un atributo personalizado DllImport no puede devolver una instancia de una clase.
Error del compilador C3386 "type": __declspec(dllexport)/__declspec(dllimport) no se pueden aplicar a un tipo administrado o WinRT.
Error del compilador C3387 "member": __declspec(dllexport)/__declspec(dllimport) no se pueden aplicar a un miembro de un tipo administrado o WinRT.
Error del compilador C3388 "token": no se permite como restricción; se supone "value" para continuar con el análisis.
Error del compilador C3389 __declspec(specifier) no se puede usar con /clr:pure ni /clr:safe.
Error del compilador C3390 "type": argumento de tipo no válido para el parámetro genérico "parameter" del valor genérico "generic_type"; debe ser un tipo de referencia.
Error del compilador C3391 "type": argumento de tipo no válido para el parámetro genérico "parameter" del valor genérico "generic_type"; debe ser un tipo de valor que no acepta valores NULL.
Error del compilador C3392 "type": argumento de tipo no válido para el parámetro genérico "parameter" del valor genérico "generic_type"; debe tener un constructor sin parámetros público.
Error del compilador C3393 Error de sintaxis en la cláusula de restricciones: "identifier" no es un tipo.
Error del compilador C3394 Error de sintaxis en la cláusula de restricciones: se ha encontrado "symbol", pero se esperaba un tipo.
Error del compilador C3395 "function": __declspec(dllexport) no se puede aplicar a una función con la convención de llamada __clrcall.
Error del compilador C3396 "class.member": atributo personalizado no encontrado en "namespace".
Error del compilador C3397 No se permite la inicialización de agregado en argumentos predeterminados
Error del compilador C3398 "operator": no se puede convertir de "type" a "type". La expresión de origen debe ser un símbolo de función
Error del compilador C3399 "type": no se pueden proporcionar argumentos cuando se crea una instancia de un parámetro genérico.

1. Ya no se emite en Visual Studio 2022, versión 17.11

Consulte también

Advertencias y errores de las herramientas de compilación y del compilador de C/C++
Errores del compilador de C2000 a C3999 y de C7000 a C7999