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. Ein Fix kann mehrere nachfolgende Fehler beheben.
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 auf dieser Seite landen und denken, dass die Fehlermeldung oder Warnmeldung zusätzliche Erläuterungen benötigt, teilen Sie uns diese über die Feedbackschaltflächen auf dieser Seite mit. 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 > Problem melden, oder senden Sie einen Vorschlag über Hilfe > Feedback senden > Feature vorschlagen. Es wurden einige Themen zu Compilerfehlern erstellt, die nicht vom Compiler ausgegeben werden und Sie jetzt stattdessen zu dieser Seite umleiten.
Weitere Unterstützung bei Fehlern und Warnungen finden Sie in den Microsoft Q&A C++-Foren. 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 | Meldung |
|---|---|
| Compiler-Fehler C2500 | 'Bezeichner1': 'Bezeichner2'ist bereits eine direkte Basisklasse |
| Compilerfehler C2501 | 'Bezeichner': '__declspec(Spezifizierer)' kann nur auf structs, unions, classes oder unsigned bit Feld members angewendet werden |
| Compiler-Fehler C2502 | 'Bezeichner': zu viele Zugriffsmodifikatoren in der Basisklasse |
| Compiler-Fehler C2503 | 'Klasse': Basisklassen können keine Arrays der Größe Null enthalten |
| Compiler-Fehler C2504 | 'Klasse': Basisklasse undefiniert |
| Compiler-Fehler C2505 | 'symbol': '__declspec(Spezifizierer)' kann nur auf Deklarationen oder Definitionen von globalen Objekten oder statischen Datenelementen angewendet werden. |
| Compiler-Fehler C2506 | 'Mitglied': '__declspec(Spezifizierer)' kann nicht auf dieses Symbol angewendet werden |
| Compiler-Fehler C2507 | 'Bezeichner'Zu viele virtuelle Modifikatoren auf der Basisklasse |
| Compilerfehler C2508 | 'Bezeichner': '__declspec(Spezifizierer1)' kann nicht kombiniert werden mit '__declspec(Bezeichner2)' |
| Compiler-Fehler C2509 | 'Bezeichner': Mitgliedsfunktion nicht deklariert in 'Klasse' |
| Compiler-Fehler C2510 | 'Bezeichner': links von '::' muss eine Klasse/Struktur/Vereinigung sein |
| Compiler-Fehler C2511 | 'Bezeichner': überladene Mitgliedsfunktion nicht gefunden in 'Klasse' |
| Compiler-Fehler C2512 | 'Bezeichner': kein geeigneter Standardkonstruktor verfügbar |
| Compiler-Fehler C2513 | '*Typ': keine Variable vor '=' deklariert |
| Compiler-Fehler C2514 | 'Klasse': Klasse has no constructors |
| Compilerfehler C2515 | 'Bezeichner'vtguard' kann nur auf Klassendeklarationen oder -definitionen angewendet werden. |
| Compiler-Fehler C2516 | 'Klasse': ist keine legale Basisklasse |
| Compiler-Fehler C2517 | 'Bezeichner': right of '::' is undefined |
| Compiler-Fehler C2518 | Schlüsselwort "Schlüsselwort" ist in einer Basisklassenliste ungültig; Einen class Namen erwartet |
| Compilerfehler C2519 | 'Bezeichner': WinRT-Attribut dürfen nur öffentliche Felder enthalten |
| Compilerfehler C2520 | 'Klasse': kein nicht-expliziter Konstruktor für implizite Konvertierung verfügbar |
| Compiler-Fehler C2521 | ein Destruktor/Finalisator nimmt keine Argumente entgegen |
| Compilerfehler C2522 | 'Bezeichner': Überladungsbezeichner kann nicht für '' verwendet werdenBezeichner1' as it's already specified on 'Bezeichner2' |
| Compiler-Fehler C2523 | 'Klasse::~Bezeichner': Unstimmigkeit zwischen Destruktor- und Finalisierungs-Tag |
| Compiler-Fehler C2524 | 'Bezeichner'Ein Destruktor/Finalisierer muss eine 'void'-Parameterliste haben. |
| Compilerfehler C2525 | 'Bezeichner': Der Parameter 'Bezeichner1'wird ' genanntBezeichner2'auf die Basisfunktion und muss in einer veröffentlichten Implementierung angepasst werden |
| Compiler-Fehler C2526 | 'Bezeichner1': C-Verknüpfungsfunktion kann keine C++-Klasse zurückgeben 'Bezeichner2' |
| Compilerfehler C2527 | 'Bezeichner': DefaultOverload kann nicht für beide ' angegeben werden.Funktion1' und 'Funktion2'. Entfernen Sie eine Spezifikation oder benennen Sie die Funktion während der Implementierung um |
| Compiler-Fehler C2528 | 'Bezeichner': Zeiger auf Referenz ist illegal |
| Compiler-Fehler C2529 | 'Bezeichner': Verweis auf Verweis ist illegal |
| Compiler-Fehler C2530 | 'Bezeichner': Verweise müssen initialisiert werden |
| Compiler-Fehler C2531 | 'Bezeichner': Verweis auf ein Bitfeld illegal |
| Compiler-Fehler C2532 | 'Bezeichner': illegaler Modifikator als Referenz |
| Compiler-Fehler C2533 | 'Bezeichner': Konstruktoren dürfen keinen Rückgabetyp haben |
| Compiler-Fehler C2534 | 'Bezeichner': Konstruktor kann keinen Wert zurückgeben |
| Compiler-Fehler C2535 | 'Bezeichner': Mitgliedsfunktion bereits definiert oder deklariert |
| Compilerfehler C2536 | Veraltet. |
| Compiler-Fehler C2537 | 'Spezifizierer': illegale Verknüpfungsspezifikation |
| Compilerfehler C2538 | Veraltet. |
| Compilerfehler C2539 | Veraltet. |
| Compiler-Fehler C2540 | nicht konstanter Ausdruck als gebundenes Array |
| Compiler-Fehler C2541 | 'Bezeichner'Löschen von Objekten, die keine Zeiger sind, ist nicht möglich. |
| Compiler-Fehler C2542 | 'Bezeichner': Klassenobjekt hat keinen Konstruktor für die Initialisierung |
| Compiler-Fehler C2543 | expected ']' for operator '[]' |
| Compiler-Fehler C2544 | erwartet ')' für Operator '()' |
| Compiler-Fehler C2545 | 'operator': überladenen Operator nicht finden können |
| Compilerfehler C2546 | 'Bezeichner'Wenn ein Typ sowohl in einem PIA als auch in einem No-PIA definiert ist, muss das PIA zuerst referenziert werden. |
| Compilerfehler C2547 | 'Bezeichner': Alle Parameter einer veröffentlichten Methode müssen in der Deklaration explizit genannt werden. |
| Compiler-Fehler C2548 | 'function': Fehlendes Standardargument für Parameterparameter |
| Compiler-Fehler C2549 | Benutzerdefinierte Konvertierung kann keinen Rückgabetyp angeben |
| Compiler-Fehler C2550 | 'Bezeichner'Konstruktor-Initialisierungslisten sind nur für Konstruktor-Definitionen zulässig. |
| Compiler-Fehler C2551 | "void *"-Zeiger muss explizit in einen Typ umgewandelt werden |
| Compiler-Fehler C2552 | 'Bezeichner': Nicht-Aggregate können nicht mit einer Initialisierungsliste initialisiert werden. |
| Compiler-Fehler C2553 | 'Typabgeleitete_klasse::Funktion': Der Rückgabetyp der überschreibenden virtuellen Funktion unterscheidet sich von 'Typbase_class::Funktion' |
| Compilerfehler C2554 | 'variable': 'constinit' ist nur für eine variable Deklaration mit statischer oder Threadspeicherdauer zulässig. |
| Compiler-Fehler C2555 | 'abgeleitete_klasse::Funktion': Der Rückgabetyp der überschreibenden virtuellen Funktion unterscheidet sich und ist nicht kovariant zu 'base_class::Funktion' |
| Compiler-Fehler C2556 | 'function1': Überladene Funktion unterscheidet sich nur vom Rückgabetyp von 'function2' |
| Compiler-Fehler C2557 | 'Bezeichner': private und geschützte Mitglieder können nicht ohne einen Konstruktor initialisiert werden |
| Compiler-Fehler C2558 | Klasse 'Klasse': kein Kopierkonstruktor vorhanden oder Kopierkonstruktor ist als 'explizit' deklariert |
| Compilerfehler C2559 | 'Bezeichner': Eine Member-Funktion ohne ref-qualifier kann nicht mit einer Member-Funktion mit ref-qualifier überladen werden. |
| Compilerfehler C2560 | 'Bezeichner': Eine Mitgliedsfunktion mit ref-qualifier kann nicht mit einer Mitgliedsfunktion ohne ref-qualifier überladen werden. |
| Compiler-Fehler C2561 | 'Funktion': Funktion muss einen Wert zurückgeben |
| Compiler-Fehler C2562 | 'Funktion': 'void'-Funktion, die einen Wert zurückgibt |
| Compiler-Fehler C2563 | Unstimmigkeit in der Liste der formalen Parameter |
| Compilerfehler C2564 | Veraltet. |
| Compilerfehler C2565 | 'Bezeichner'ref-qualifier ist illegal für Konstruktoren/Destruktoren |
| Compiler-Fehler C2566 | überladene Funktion in bedingtem Ausdruck |
| Compiler-Fehler C2567 | Metadaten können nicht in 'Dateiname', möglicher_Grund |
| Compiler-Fehler C2568 | 'Bezeichner': Funktionsüberladung kann nicht aufgelöst werden |
| Compiler-Fehler C2569 | 'Bezeichner': enum/Gewerkschaft kann nicht als Basisklasse verwendet werden |
| Compiler-Fehler C2570 | 'Bezeichner': Union kann keine Basisklassen haben |
| Compiler-Fehler C2571 | 'Bezeichner': virtuelle Funktion kann nicht in Union sein 'Gewerkschaft' |
| Compiler-Fehler C2572 | 'Funktion': Neudefinition des Standardarguments: Parameter Nummer |
| Compiler-Fehler C2573 | 'Klasse': Zeiger auf Objekte dieses Typs können nicht gelöscht werden; die Klasse hat keine Überladung für 'operator delete' ohne Platzierung. Verwenden Sie ::delete, oder fügen Sie 'operator delete(void*)' zur Klasse hinzu |
| Compiler-Fehler C2574 | 'function': kann nicht statisch deklariert werden. |
| Compiler-Fehler C2575 | 'Bezeichner'Nur Mitgliedsfunktionen und Basen können virtuell sein. |
| Compilerfehler C2576 | 'Bezeichner': Sie können eine neue virtuelle Methode nicht als "öffentlich" einführen. Ziehen Sie in Erwägung, die Methode nicht-virtuell zu machen oder die Zugänglichkeit auf "intern" oder "geschützt privat" zu ändern. |
| Compiler-Fehler C2577 | 'Bezeichner': ein Destruktor/Finalisierer kann keinen Rückgabetyp haben |
| Compilerfehler C2578 | 'Klasse'Typ: kann keinen 'protected' oder 'protected public' Konstruktor haben |
| Compiler-Fehler C2579 | kann den Typ nicht auflösen Typ (Versatz). Es wird erwartet in Dateiname |
| Compilerfehler C2580 | 'Bezeichner'Mehrere Versionen eines standardmäßigen speziellen Mitglieds sind nicht erlaubt. |
| Compiler-Fehler C2581 | 'Typ'statische Funktion 'operator =' ist illegal |
| Compiler-Fehler C2582 | 'operator operator'Funktion ist nicht mehr verfügbar in 'Typ' |
| Compiler-Fehler C2583 | 'identifier': 'const/volatile' 'this'-Zeiger ist illegal für Konstruktoren/Destruktoren |
| Compiler-Fehler C2584 | 'Klasse': direkte Basis 'base_class2'ist unzugänglich; bereits eine Basis von 'Basis_Klasse1' |
| Compiler-Fehler C2585 | explizite Konvertierung in 'Typ'ist mehrdeutig |
| Compiler-Fehler C2586 | Falsche benutzerdefinierte Konvertierungssyntax: illegale Umleitungen |
| Compiler-Fehler C2587 | 'Bezeichner': illegale Verwendung von lokalen Variablen als Standardparameter |
| Compiler-Fehler C2588 | '::~Bezeichner': illegaler globaler Destruktor/Finalisierer |
| Compiler-Fehler C2589 | 'Bezeichner': illegales Token auf der rechten Seite von '::' |
| Compilerfehler C2590 | 'Bezeichner': Nur ein Konstruktor kann eine Base/Member-Initialisierungsliste haben |
| Compilerfehler C2591 | ExklusivZu kann nicht verwenden 'Typ'als Argument. Nur eine 'ref Klasse' ist ein gültiges Argument |
| Compiler-Fehler C2592 | 'Klasse': 'base_class2'wird geerbt von 'Basis_Klasse1' und cannot be re-specified |
| Compiler-Fehler C2593 | 'operator Bezeichner'ist mehrdeutig |
| Compiler-Fehler C2594 | 'operator': Zweideutige Konvertierungen von 'Typ1' bis 'Typ2' |
| Compilerfehler C2595 | 'Bezeichner'Ein WinRT-Attribut-Typ muss versiegelt sein |
| Compilerfehler C2596 | 'Bezeichner' A WinRT Attribut Feld can only be a 'public enum Klasse', 'int', 'unsigned int', 'bool', 'Platform::Typ', 'Platform::String' or 'Windows::Foundation::HResult' |
| Compiler-Fehler C2597 | Unzulässiger Verweis auf nicht-statisches Mitglied 'Bezeichner' |
| Compiler-Fehler C2598 | Verknüpfungsspezifikation muss im globalen Reservierungsumfang sein |
| Compiler-Fehler C2599 | 'Bezeichner'Die Vorwärtsdeklaration eines managed/WinRT enum ist nicht erlaubt. |
Weitere Informationen
C/C++-Compiler und -Buildtools: Fehler und Warnungen
Compilerfehler C2000 bis C3999, C7000 bis C7999