Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In den Artikeln in diesem Abschnitt der Dokumentation wird eine Teilmenge der vom Compiler generierten Fehlermeldungen erläutert.
Wichtig
Die Visual Studio-Compiler und -Buildtools können vielen Arten von Fehlern und Warnungen generieren. Nachdem ein Fehler oder eine Warnung erkannt wurde, können die Buildtools Annahmen über den beabsichtigten Zweck des Codes machen, und sie versuchen, den Code weiterhin auszuführen, sodass mehrere Probleme gleichzeitig gemeldet werden können. Wenn die Tools allerdings von falschen Annahmen ausgehen, sind spätere Fehler oder Warnungen möglicherweise nicht auf das Projekt anwendbar. Wenn Sie Probleme im Projekt beheben, sollten Sie immer mit dem ersten gemeldeten Problem (Fehler oder Warnung) beginnen, und häufig einen Rebuild für das Projekt ausführen. Durch eine Fehlerbehebung können möglicherweise viele nachfolgende Fehler behoben werden.
Um Hilfe zu einer bestimmten Diagnosenachricht in Visual Studio zu erhalten, wählen Sie sie im Fenster Ausgabe aus, und drücken Sie die Taste F1. Visual Studio öffnet die Dokumentationsseite für diesen Fehler, sofern vorhanden. Sie können auch das Suchtool oben auf der Seite verwenden, um Artikel zu bestimmten Fehlern oder Warnungen zu finden. Oder durchsuchen Sie die Liste der Fehler und Warnungen nach Tool und Typ im Inhaltsverzeichnis auf dieser Seite.
Hinweis
Nicht jeder Visual Studio-Fehler oder jede Warnung ist dokumentiert. In vielen Fällen sind bereits alle verfügbaren Informationen in der Fehlermeldung enthalten. Wenn Sie diese Seite erreicht haben, nachdem Sie F1 gedrückt haben, und der Ansicht sind, dass die Fehlermeldung oder Warnmeldung zusätzliche Erläuterungen benötigt, teilen Sie uns dies mit. Mithilfe der Feedbackschaltflächen auf dieser Seite können Sie ein Dokumentationsproblem auf GitHub melden. Wenn Sie glauben, dass der Fehler oder die Warnung falsch ist oder Sie ein weiteres Problem mit dem Toolset gefunden haben, melden Sie ein Produktproblem auf der Developer Community-Website. Sie können auch innerhalb der IDE Feedback senden und Fehler eingeben. Wechseln Sie in Visual Studio zur Menüleiste, und wählen Sie Hilfe > Feedback senden > Ein Problem melden aus, oder senden Sie einen Vorschlag über Hilfe > Feedback senden > Vorschlag senden. Es wurden einige Themen zu Compilerfehlern erstellt, die nicht vom Compiler ausgegeben werden und Sie jetzt stattdessen zu dieser Seite umleiten.
In Microsoft Learn Q&A-Foren finden Sie möglicherweise zusätzliche Unterstützung für Fehler und Warnungen. Oder suchen Sie auf der Website der Visual Studio C++-Developer Community nach der Fehler- oder Warnungsnummer. Sie können auch Stack Overflow nach Lösungen durchsuchen.
Links zu zusätzlichen Hilfe- und Communityressourcen finden Sie in der Hilfe und Community für Visual C++.
Fehlermeldungen
| Fehler | `Message` |
|---|---|
| Compilerfehler C3400 | Zirkuläre Einschränkungsabhängigkeit mit „constraint1“ und „constraint2“ |
| Compilerfehler C3401 | „specifier“: Ungültiger Assembly-Zugriffsspezifizierer – für Klassenvorlagen ist nur „private“ zulässig |
| Compilerfehler C3402 | „function“: Die Überladung kann nicht aufgelöst werden, außer im aktuellen Gültigkeitsbereich |
| Compilerfehler C3403 | thread_local kann mit /clr:pure oder /clr:safe nicht verwendet werden |
| Compilerfehler C3404 | „construct“: Unerwarteter Syntaxfehler |
| Compilerfehler C3405 | „function“: Die Überladung kann nicht ohne vollständigen Deskriptor aufgelöst werden |
| Compilerfehler C3406 | „keyword“: Darf nicht in einem ausführlichen Typspezifizierer verwendet werden |
| Compilerfehler C3407 | „type“ kann in diesem Kontext nicht verwendet werden |
| Compilerfehler C3408 | „attribute“: Das Attribut ist für Vorlagendefinitionen nicht zulässig |
| Compilerfehler C3409 | Ein leerer Attributblock ist nicht zulässig |
| Compilerfehler C3410 | „identifier“: Der Typ der expliziten Instanziierung „type“ stimmt nicht mit dem Typ der Variablenvorlage „type“ überein |
| Compilerfehler C3411 | „type“ ist als Größe eines Arrays ungültig, da es sich nicht um einen ganzzahligen Typ handelt |
| Compilerfehler C3412 | „specialization“: Die Vorlage kann nicht im aktuellen Gültigkeitsbereich spezialisiert werden |
| Compilerfehler C3413 | „template“: Ungültige explizite Instanziierung |
| Compilerfehler C3414 | „function“: Die importierte Memberfunktion kann nicht definiert werden |
| Compilerfehler C3415 | Es wurden mehrere „section“-Abschnitte mit unterschiedlichen Attributen gefunden („0xvalue“) |
| Compilerfehler C3416 | Veraltet. |
| Compilerfehler C3417 | „declarator“: Werttypen können keine benutzerdefinierten speziellen Memberfunktionen enthalten |
| Compilerfehler C3418 | Der Zugriffsspezifizierer „specifier“ wird nicht unterstützt |
| Compilerfehler C3419 | Veraltet. |
| Compilerfehler C3420 | „function“: Ein Finalizer darf nicht virtuell sein |
| Compilerfehler C3421 | „function“: Sie können den Finalizer für diese Klasse nicht aufrufen, da auf ihn nicht zugegriffen werden kann oder er nicht vorhanden ist. |
| Compilerfehler C3422 | „declaration“: Nicht übereinstimmende Typen „type“ und „type“ |
| Compilerfehler C3423 | Veraltet. |
| Compilerfehler C3424 | „type“: Eine Umwandlung des Funktionsformats in einen Arraytyp ist nicht zulässig |
| Compilerfehler C3425 | Ein Zeiger auf ein Objekt des unvollständigen Typs „type“ kann nicht ausgelöst werden |
| Compilerfehler C3426 | Ein Objekt des unvollständigen Typs „type“ kann nicht ausgelöst werden |
| Compilerfehler C3427 | „context“: „keyword“ kann nicht mit der layout_version(number) verwendet werden. |
| Compilerfehler C3428 | „context“: „keyword“ kann nur auf Klassendeklarationen oder -definitionen angewendet werden |
| Compilerfehler C3429 | „context“: „keyword“ kann nicht auf eine Union angewendet werden |
| Compilerfehler C3430 | Eine Enumeration mit eigenem Gültigkeitsbereich muss einen Namen aufweisen |
| Compilerfehler C3431 | „identifier“: type1 kann nicht als type2 neu deklariert werden |
| Compilerfehler C3432 | „identifier“: Für eine Vorwärtsdeklaration einer Enumeration ohne eigenen Gültigkeitsbereich ist ein zugrunde liegender Typ erforderlich |
| Compilerfehler C3433 | „identifier“: Alle Deklarationen einer Enumeration müssen denselben zugrunde liegenden Typ aufweisen. Alter Typ: „type1“, aktueller Typ: „type2“ |
| Compilerfehler C3434 | „context“: Der Enumeratorwert „number“ kann nicht als „type“ dargestellt werden, der Wert ist „number“ |
| Compilerfehler C3435 | Der Zeichensatz „name“ wird nicht unterstützt. |
| Compilerfehler C3436 | #pragma setlocale wird nicht unterstützt, wenn /source-charset, /execution-charset oder /utf-8 angegeben wurde |
| Compilerfehler C3437 | #pragma execution_character_set wird nicht unterstützt, wenn /source-charset, /execution-charset oder /utf-8 angegeben wurde |
| Compilerfehler C3438 | „context“: „value“ kann nicht auf eine verwaltete Klasse/WinRT-Klasse angewendet werden |
| Compilerfehler C3439 | layout_version(number): ungültige Versionsnummer |
| Compilerfehler C3440 | „declaration“: layout_version(number) ist nicht mit einer vorherigen Deklaration kompatibel |
| Compilerfehler C3441 | „declaration“: „keyword“ darf nicht angewendet werden, nachdem die Klasse definiert wurde |
| Compilerfehler C3442 | Mehrere Member der Union werden initialisiert: „member1“ und „member2“ |
| Compilerfehler C3443 | Der Standardmemberinitialisierer für „class“ ist rekursiv |
| Compilerfehler C3444 | Die leere Aggregatklasse „class“ muss mit „{}“ initialisiert werden |
| Compilerfehler C3445 | Die copy-list-Initialisierung von „type“ darf keinen expliziten Konstruktor verwenden |
| Compilerfehler C3446 | „class“: Ein Standardmemberinitialisierer ist für einen Member einer Wertklasse nicht zulässig |
| Compilerfehler C3447 | operand für den bedingten Operator ?: weist den Typ „void“ auf, other-operand ist allerdings weder ein throw-Ausdruck noch vom Typ „void“ |
| Compilerfehler C3448 | Die Anzahl der Bezeichner muss mit der Anzahl der Arrayelemente oder-member in der Deklaration einer strukturierten Bindung übereinstimmen |
| Compilerfehler C3449 | Die Anzahl der Bezeichner muss mit dem Wert von std::tuple_size<type-name>::value in einer strukturierten Bindung übereinstimmen, die einen tupelartigen Typ aufweist. |
| Compilerfehler C3450 | „type“: ist kein Attribut; [System::AttributeUsageAttribute]/[Windows::Foundation::Metadata::AttributeUsageAttribute] kann nicht angegeben werden. |
| Compilerfehler C3451 | „attribute“: Ein nicht verwaltetes Attribut kann nicht auf „type“ angewendet werden |
| Compilerfehler C3452 | Der Listenargumentmember ist keine Konstante. |
| Compilerfehler C3453 | „attribute“: Das Attribut wurde nicht angewendet, da der Qualifizierer „qualifier“ nicht übereinstimmte |
| Compilerfehler C3454 | [attribut] ist in der Klassendeklaration nicht zulässig |
| Compilerfehler C3455 | „attribute“: Keiner der Attributkonstruktoren stimmte mit den Argumenten überein |
| Compilerfehler C3456 | [source_annotation_attribute] ist in einer verwalteten Klassendeklaration/WinRT-Klassendeklaration nicht zulässig |
| Compilerfehler C3457 | „attribute“: Das Attribut unterstützt keine unbenannten Argumente |
| Compilerfehler C3458 | „[attribute]“: Das Attribut „[attribute]“ wurde bereits für „identifier“ angegeben |
| Compilerfehler C3459 | „[attribute]“: Das Attribut ist nur für den Klassenindexer (indizierte Standardeigenschaft) zulässig |
| Compilerfehler C3460 | „type“: Nur ein benutzerdefinierter Typ kann weitergeleitet werden |
| Compilerfehler C3461 | „type“: Nur ein verwalteter Typ/WinRT-Typ kann weitergeleitet werden |
| Compilerfehler C3462 | „type“: Nur ein importierter Typ kann weitergeleitet werden |
| Compilerfehler C3463 | „type“: Der Typ ist im Attribut „implements“ nicht zulässig |
| Compilerfehler C3464 | „type“: Ein geschachtelter Typ kann nicht weitergeleitet werden |
| Compilerfehler C3465 | Um den Typ „type“ zu verwenden, müssen Sie auf die Assembly „assembly“ verweisen |
| Compilerfehler C3466 | „type“: Eine Spezialisierung einer generischen Klasse kann nicht weitergeleitet werden |
| Compilerfehler C3467 | „type“: Dieser Typ wurde bereits weitergeleitet |
| Compilerfehler C3468 | „type“: Sie können einen Typ nur an eine Assembly weiterleiten: „identifier“ ist keine Assembly |
| Compilerfehler C3469 | „type“: Eine generische Klasse kann nicht weitergeleitet werden |
| Compilerfehler C3470 | „class“: Eine Klasse kann nicht gleichzeitig einen Indexer (indizierte Standardeigenschaft) und einen []-Operator aufweisen |
| Compilerfehler C3471 | Der neue Modulname module-name (in der Befehlszeile festgelegt) verursacht einen Konflikt mit dem vorherigen Namen module-name |
| Compilerfehler C3472 | Der neue Ausgabedateiname filename (in der Befehlszeile festgelegt) verursacht einen Konflikt mit dem vorherigen Dateinamen filename |
| Compilerfehler C3473 | Es wurde kein Ausgabepfadname oder Modulname angegeben. |
| Compilerfehler C3474 | Die Ausgabedatei „filename konnte nicht geöffnet werden |
| Compilerfehler C3475 | Syntaxfehler in der Eingabedatei „filename“ |
| Compilerfehler C3476 | Die Datei „filename“ konnte nicht für die Eingabe geöffnet werden |
| Compilerfehler C3477 | Eine Lambdafunktion kann nicht in einem nicht ausgewerteten Kontext angezeigt werden |
| Compilerfehler C3478 | „identifier“: Ein Array darf nicht nach Kopie erfasst werden |
| Compilerfehler C3479 | SAL-Anmerkungen in Lambdafunktionen werden nicht unterstützt |
| Compilerfehler C3480 | „variable“: Eine Lambdaerfassungsvariable muss aus einem umschließenden Funktionsbereich stammen |
| Compilerfehler C3481 | „identifier“: Es wurde keine Lambdaerfassungsvariable gefunden |
| Compilerfehler C3482 | "this" kann nur als Lambdaerfassung innerhalb einer nicht statischen Memberfunktion verwendet werden. |
| Compilerfehler C3483 | „identifier“ ist bereits Teil der Lambdaerfassungsliste |
| Compilerfehler C3484 | Syntaxfehler: „->“ wird vor dem Rückgabetyp erwartet |
| Compilerfehler C3485 | Eine Lambdadefinition darf keine CV-Qualifizierer aufweisen (Veraltet in Visual Studio 2022.) |
| Compilerfehler C3486 | Ein Parameter für eine Lambdafunktion darf kein Standardargument aufweisen (Veraltet in Visual Studio 2022.) |
| Compilerfehler C3487 | „type“: Alle Rückgabeausdrücke müssen auf denselben Typ zurückgeführt werden: Zuvor war es „type“ |
| Compilerfehler C3488 | „&identifier“ ist nicht zulässig, wenn der Standarderfassungsmodus ein Modus nach Verweis ist |
| Compilerfehler C3489 | „&identifier“ ist erforderlich, wenn der Standarderfassungsmodus ein Modus nach Kopie ist |
| Compilerfehler C3490 | „identifier“ kann nicht geändert werden, da über ein Konstantenobjekt darauf zugegriffen wird |
| Compilerfehler C3491 | „identifier“: Eine Erfassung nach Kopie kann in einer unveränderlichen Lambdafunktion nicht geändert werden |
| Compilerfehler C3492 | „identifier“: Ein Member einer anonymen Union kann nicht erfasst werden |
| Compilerfehler C3493 | „identifier“ kann nicht implizit erfasst werden, da kein Standarderfassungsmodus angegeben wurde |
| Compilerfehler C3494 | „this“ kann nicht explizit erfasst werden, da ein umschließender Erfassungsmodus dies nicht zulässt |
| Compilerfehler C3495 | „identifier“: Der Bezeichner in der Erfassung muss eine Variable mit automatischer Speicherdauer sein, deklariert im Gültigkeitsbereich der Lambdafunktion |
| Compilerfehler C3496 | "this" wird immer nach Wert erfasst: "&" wird ignoriert. |
| Compilerfehler C3497 | Es kann keine Instanz einer Lambdafunktion erstellt werden |
| Compilerfehler C3498 | „identifier“: Eine Variable mit einem verwalteten Typ/WinRT-Typ kann nicht erfasst werden |
| Compilerfehler C3499 | Ein Lambda, für das ein Void-Rückgabetyp angegeben wurde, kann keinen Wert zurückgeben. |
Weitere Informationen
C/C++-Compiler und -Buildtools: Fehler und Warnungen
Compilerfehler C2000 bis C3999, C7000 bis C7999