Erreurs du compilateur C3300 à C3399
Les articles de cette section de la documentation décrivent un sous-ensemble de messages d’erreur générés par le compilateur.
Important
Les compilateurs et outils de génération Visual Studio peuvent signaler de nombreux types d’erreurs et d’avertissements. Une fois qu’une erreur ou un avertissement a été détecté, les outils de génération peuvent faire des hypothèses sur l’intention du code, et tenter de poursuivre leur tâche, pour signaler un plus grand nombre de problèmes en même temps. Si les outils suivent une hypothèse incorrecte, les erreurs ou avertissements ultérieurs peuvent ne pas s'appliquer à votre projet. Lors de la résolution de problèmes dans votre projet, démarrez toujours par la première erreur ou le premier avertissement signalé et effectuez régulièrement une régénération. Un seul correctif peut permettre d’éliminer de nombreuses erreurs à venir.
Pour obtenir de l’aide sur un message de diagnostic particulier dans Visual Studio, sélectionnez-le dans la fenêtre Sortie, puis appuyez sur la touche F1. Visual Studio ouvre la page de documentation relative à cette erreur, le cas échéant. Vous pouvez également utiliser l’outil de recherche en haut de la page pour rechercher des articles sur des erreurs ou des avertissements spécifiques. Vous pouvez également parcourir la liste des erreurs et des avertissements par outil et par type dans la table des matières de cette page.
Remarque
Les erreurs et les avertissements Visual Studio ne sont pas documentés en totalité. Dans de nombreux cas, le message de diagnostic fournit toutes les informations disponibles. Si vous êtes arrivé sur cette page quand vous avez utilisé F1, et si vous pensez que le message d’erreur ou d’avertissement nécessite une explication supplémentaire, faites-le nous savoir. Vous pouvez utiliser les boutons de commentaires de cette page pour signaler un problème de documentation sur GitHub. Si vous pensez que l’erreur ou l’avertissement est incorrect, ou si vous avez trouvé un autre problème relatif à l’ensemble d’outils, signalez un problème de produit sur le site Developer Community. Vous pouvez également envoyer des commentaires et entrer des bogues dans l’IDE. Dans Visual Studio, accédez à la barre de menus, puis choisissez Aide > Envoyer des commentaires > Signaler un problème, ou envoyez une suggestion via Aide > Envoyer des commentaires > Envoyer une suggestion. Certaines rubriques d’erreur du compilateur qui ne sont pas émises par le compilateur ont été créées et redirigent maintenant vers cette page à la place.
Vous trouverez peut-être une aide supplémentaire sur les erreurs et les avertissements dans les forums de Q&A Microsoft Learn. Vous pouvez également rechercher le numéro d’erreur ou d’avertissement sur le site Developer Community de Visual Studio C++. Vous pouvez également effectuer des recherches sur Stack Overflow pour trouver des solutions.
Pour obtenir des liens vers d’autres ressources d’aide et de communauté, consultez Aide et communauté Visual C++.
Messages d’erreur
Erreur | Message |
---|---|
Erreur du compilateur C3300 | « symbole» : format incorrect de la « valeur » IDL |
Erreur du compilateur C3301 | « coclasse» : une coclass ne peut pas être une interface « symbole » |
Erreur du compilateur C3302 | « identificateur» : l’identificateur contient plus de nombre caractères |
Erreur du compilateur C3303 | « attribut » : l’attribut ne peut être utilisé que sur « type » |
Erreur du compilateur C3304 | Obsolète. |
Erreur du compilateur C3305 | Obsolète. |
Erreur du compilateur C3306 | « modèle » : un modèle/générique de classe sans nom n’est pas autorisé |
Erreur du compilateur C3307 | « module » : impossible de créer le module IDL |
Erreur du compilateur C3308 | « fonction » : les appels directs via une classe importée ne sont pas pris en charge |
Erreur du compilateur C3309 | « macro/mot clé » : le nom du module ne peut pas être une macro ou un mot clé |
Erreur du compilateur C3310 | « identificateur » : conflit de nom de module |
Erreur du compilateur C3311 | l’attribut du module doit être défini au niveau de la portée globale |
Erreur du compilateur C3312 | aucune fonction « identificateur » n’a été trouvée pour le type « type » |
Erreur du compilateur C3313 | « identificateur »: une variable ne peut pas avoir le type « type » |
Erreur du compilateur C3314 | « symbole » : type de module IDL non pris en charge |
Erreur du compilateur C3315 | « fonction » : doit être une fonction membre |
Erreur du compilateur C3316 | « type »: un tableau de taille inconnue ne peut pas être utilisé dans une instruction for basée sur une plage |
Erreur du compilateur C3317 | « identificateur » : une fonction de surcharge ne peut pas être utilisée comme expression dans une instruction for basée sur une plage |
Erreur du compilateur C33181 | « type » : un tableau ne peut pas avoir de type d’élément contenant « auto » |
Erreur du compilateur C3319 | Obsolète. |
Erreur du compilateur C3320 | « type » : le type ne peut pas avoir le même nom que la propriété « nom » du module |
Erreur du compilateur C3321 | une liste d’initialiseurs est inattendue dans ce contexte |
Erreur du compilateur C3322 | « propriété » : propriété non valide pour l’attribut « attribut » |
Erreur du compilateur C3323 | « alignas » et « __declspec(align) » ne sont pas autorisés dans des déclarations de fonction |
Erreur du compilateur C3324 | « propriété » : la propriété apparaît plusieurs fois dans l’attribut « attribut » |
Erreur du compilateur C3325 | « attribut » : l’attribut a trop d’arguments |
Erreur du compilateur C3326 | « valeur » : valeur non valide pour la propriété « propriété » de l’attribut « attribut » |
Erreur du compilateur C3327 | « propriété » : une valeur doit être spécifiée pour la propriété de l’attribut « attribut » |
Erreur du compilateur C3328 | « attribut » : l’attribut a un nombre d’arguments insuffisant |
Erreur du compilateur C3329 | erreur de syntaxe : « token1 » attendu et non « token2 » |
Erreur du compilateur C3330 | « fonction » : une fonction ne peut pas retourner un tableau « type » |
Erreur du compilateur C3331 | « identificateur » : les attributs des paramètres sont uniquement autorisés sur les coclasses et les interfaces COM |
Erreur du compilateur C3332 | « propriété » : syntaxe non cohérente, la « propriété » est obligatoire et doit avoir une valeur par défaut |
Erreur du compilateur C3333 | « bibliothèque » : #import de bibliothèque de types endommagée impossible |
Erreur du compilateur C3334 | #import de bibliothèque de types endommagée impossible |
Erreur du compilateur C3335 | « identificateur » : il peut y avoir au plus une interface par défaut pour une coclasse « classe » |
Erreur du compilateur C3336 | Cette opération doit être effectuée au niveau de la portée de classe |
Erreur du compilateur C3337 | « identificateur » : defaultvtable doit être la source de l’événement de la coclasse « classe » |
Erreur du compilateur C3338 | « identificateur » : il peut y avoir au plus une interface par défaut qui est aussi la source de l’événement de la coclasse « classe » |
Erreur du compilateur C3339 | le paramètre de modèle nécessite « classe »ou « nom de type » après la liste des paramètres |
Erreur du compilateur C3340 | « identificateur » : une interface ne peut être définie à la fois « restreinte » et « par défaut » dans la coclasse « classe » |
Erreur du compilateur C3341 | « interface » : une interface defaultvtable doit être « double » ou « personnalisée » |
Erreur du compilateur C3342 | « identificateur » : attribut ambigu |
Erreur du compilateur C3343 | « classe::nom »: l’identificateur d’attribut contient trop de caractères |
Erreur du compilateur C3344 | vous ne pouvez pas définir une spécialisation explicite ni une spécialisation partielle de « symbole » |
Erreur du compilateur C3345 | « nom » : identificateur du nom de module non valide |
Erreur du compilateur C3346 | déclaration exportée en dehors de la portée de l’espace de noms |
Erreur du compilateur C3347 | « argument » : l’argument requis n’est pas spécifié dans l’attribut nom d’attribut |
Erreur du compilateur C3348 | les modèles exportés ne font pas partie des normes actuelles C++ |
Erreur du compilateur C3349 | « classe::membre »: l’attribut multidiffusion a déjà été implémenté par le fournisseur nom du fournisseur |
Erreur du compilateur C3350 | « fonction » : un constructeur délégué attend nombre argument(s) |
Erreur du compilateur C3351 | « fonction » : si vous passez une instance d’objet NULL à un constructeur délégué, vous devez aussi passer l’adresse d’une fonction membre statique |
Erreur du compilateur C3352 | « fonction » : la fonction spécifiée est incompatible avec le type délégué « type » |
Erreur du compilateur C3353 | « identificateur » : un délégué ne peut être créé qu’à partir d’une fonction globale ou d’une fonction membre d’un type managé/WinRT |
Erreur du compilateur C3354 | « identificateur » : la fonction utilisée pour créer un délégué ne peut pas avoir un type de retour « type » |
Erreur du compilateur C3355 | « classe::membre » : l’attribut multidiffusion écoute le fournisseur « provider1 », mais est implémenté par le fournisseur « provider2 » |
Erreur du compilateur C3356 | « identificateur » : impossible d’appeler un attribut multidiffusion avec un nom complet |
Erreur du compilateur C3357 | « attribut » : l’attribut est ambigu, il doit utiliser un nom complet |
Erreur du compilateur C3358 | « symbole » : symbole introuvable |
Erreur du compilateur C3359 | « spécialisation » : spécialisation du modèle impossible |
Erreur du compilateur C3360 | « chaîne » : Création de nom impossible |
Erreur du compilateur C3361 | il n’existe aucun contexte dans lequel action |
Erreur du compilateur C3362 | « classe::membre »: l’attribut multidiffusion n’a pas été implémenté |
Erreur du compilateur C3363 | « identificateur » : « typeid » uniquement applicable à un type |
Erreur du compilateur C3364 | « fonction » : argument non valide pour le constructeur délégué ; la cible du délégué doit être un pointeur vers une fonction membre |
Erreur du compilateur C3365 | opérateur « opérateur » : opérandes différents de type « type1 » et « type2 » |
Erreur du compilateur C3366 | « membre »: les données membres statiques des types managés/WinRT doivent être définies dans la définition de la classe |
Erreur du compilateur C3367 | « fonction » : utilisation d’une fonction statique impossible pour créer un délégué indépendant |
Erreur du compilateur C3368 | « déclarateur » : convention d’appel à l’IDL non valide |
Erreur du compilateur C3369 | « module » : module idl_module déjà défini |
Erreur du compilateur C3370 | « module » : module idl_module non encore défini |
Erreur du compilateur C3371 | 'idl_module' : seule la propriété 'name' est autorisée ici |
Erreur du compilateur C3372 | doit spécifier au moins 1 interface pour l’attribut « attribut » d’une coclasse |
Erreur du compilateur C3373 | l’attribut « attribut » n’accepte aucun argument sauf sur une coclasse |
Erreur du compilateur C3374 | impossible de récupérer l’adresse de « fonction » à moins de créer une instance de délégué |
Erreur du compilateur C3375 | « fonction » : fonction déléguée ambiguë |
Erreur du compilateur C3376 | « modèle » : seuls les modèles de données membres statiques sont autorisés |
Erreur du compilateur C3377 | « decltype(auto) » n’est pas autorisé dans une nouvelle expression (obsolète dans Visual Studio 2022.) |
Erreur du compilateur C3378 | une déclaration peut être exportée uniquement à partir d’une unité d’interface de module |
Erreur du compilateur C3379 | « classe » : la déclaration d’une classe imbriquée ne peut pas contenir de spécificateur d’accès à l’assembly |
Erreur du compilateur C3380 | « spécificateur » : spécificateur d’accès à l’assembly non valide, seuls « public » ou « privé » sont autorisés |
Erreur du compilateur C3381 | « spécificateur » : les spécificateurs d’accès à l’assembly sont disponibles uniquement dans un code compilé à l’aide de l’option /clr |
Erreur du compilateur C3382 | 'sizeof' n'est pas pris en charge avec /clr:safe |
Erreur du compilateur C3383 | 'operator new' n'est pas pris en charge avec /clr:safe |
Erreur du compilateur C3384 | « type » : la contrainte de valeur et la contrainte ref s’excluent mutuellement |
Erreur du compilateur C3385 | « fonction » : une fonction avec un attribut personnalisé DllImport ne peut pas retourner l’instance d’une classe |
Erreur du compilateur C3386 | « type » : __declspec(dllexport)/__declspec(dllimport) ne peut pas être appliqué à un type managé/WinRT |
Erreur du compilateur C3387 | « membre » : __declspec(dllexport)/__declspec(dllimport) ne peut pas être appliqué au membre d’un type managé/WinRT |
Erreur du compilateur C3388 | « jeton » : non autorisé comme contrainte, « valeur » prise par défaut pour poursuivre l’analyse |
Erreur du compilateur C3389 | __declspec(spécificateur) ne peut pas être utilisé avec /clr:pure ou /clr:safe |
Erreur compilateur C3390 | « type » : argument de type non valide pour le paramètre générique « paramètre » du générique « generic_type », doit être un type référence |
Erreur du compilateur C3391 | « type » : argument de type non valide pour le paramètre générique «paramètre» du générique « generic_type », doit être un type valeur non nullable |
Erreur du compilateur C3392 | « type » : argument de type non valide pour le paramètre générique « paramètre » du générique « generic_type », doit avoir un constructeur sans paramètre public |
Erreur du compilateur C3393 | erreur de syntaxe dans la clause de contrainte : « identificateur » n’est pas un type |
Erreur du compilateur C3394 | erreur de syntaxe dans la clause de contrainte :» symbole » trouvé, type attendu |
Erreur du compilateur C3395 | « fonction » : __declspec(dllexport) ne peut pas être appliqué à une fonction avec la convention d’appel __clrcall |
Erreur du compilateur C3396 | « classe.membre » : attribut personnalisé introuvable dans « espace de noms » |
Erreur du compilateur C3397 | L'initialisation d'agrégats n'est pas autorisée dans les arguments par défaut |
Erreur du compilateur C3398 | « opérateur » : Impossible de convertir le type « type » en type « type ». L'expression source doit être un symbole de fonction |
Erreur du compilateur C3399 | « type » : impossible de fournir des arguments lors de la création d’une instance d’un paramètre générique |
1-N’est plus émis dans Visual Studio 2022 version 17.11
Voir aussi
Erreurs et avertissements du compilateur C/C++ et des outils de génération
Erreurs du compilateur C2000 - C3999, C7000 - C7999