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 C2800 | Der Operator „Operator“ kann nicht überladen werden |
| Compilerfehler C2801 | „member“ muss ein nicht statischer Member sein |
| Compilerfehler C2802 | Der Operator „operator“ des statischen Members besitzt keine formalen Parameter |
| Compilerfehler C2803 | Der Operator „operator“ muss mindestens einen formalen Parameter vom Typ „class“ aufweisen |
| Compilerfehler C2804 | Der binäre Operator „operator“ hat zu viele Parameter |
| Compilerfehler C2805 | Der binäre Operator „operator“ hat zu wenige Parameter |
| Compilerfehler C2806 | Der Operator „operator“ hat zu viele formale Parameter |
| Compilerfehler C2807 | Der zweite formale Parameter für den Postfix-Operator „operator“ muss „int“ sein |
| Compilerfehler C2808 | Der unäre Operator „operator“ hat zu viele formale Parameter |
| Compilerfehler C2809 | Der Operator „operator“ besitzt keine formalen Parameter |
| Compilerfehler C2810 | „interface“: Eine Schnittstelle kann nur von einer anderen Schnittstelle erben |
| Compilerfehler C2811 | „type1“: kann nicht von „type2“ erben, eine Verweisklasse kann nur von einer Verweisklasse oder Schnittstellenklasse erben |
| Compilerfehler C2812 | #import wird mit /clr:pure und /clr:safe nicht unterstützt |
| Compilerfehler C2813 | #import wird mit "/MP" nicht unterstützt. |
| Compilerfehler C2814 | „member“: ein nativer Typ kann innerhalb eines verwalteten Typs/WinRT-Typs „class“ nicht geschachtelt werden |
| Compilerfehler C2815 | „operator delete“: Der erste formale Parameter muss „void *“ sein, aber es wurde „type“ verwendet |
| Compilerfehler C2816 | Im Aufruf des funktionsähnlichen Makros „identifier“ fehlt eine schließende Klammer „)“. |
| Compilerfehler C2817 | Der Rückgabetyp für den Operator „delete“ muss „void“ sein |
| Compilerfehler C2818 | Anwendung des überladenen Operators „->“ ist durch den Typ „class“ rekursiv |
| Compilerfehler C2819 | Der Typ „class“ hat keinen überladenen Memberoperator „->“ |
| Compilerfehler C2820 | Veraltet. |
| Compilerfehler C2821 | Der erste formale Parameter für den Operator „new“ muss „size_t“ sein |
| Compilerfehler C2822 | Die lokale Entladung wird auf dieser Plattform nicht unterstützt |
| Compilerfehler C2823 | Eine Typendefinitionsvorlage/generische Typendefinition ist nicht zulässig |
| Compilerfehler C2824 | Der Rückgabetyp für den Operator „new“ muss „void *“ sein |
| Compilerfehler C2825 | „identifier“: Muss eine Klasse oder ein Namespace sein, wenn gefolgt von „::“ |
| Compilerfehler C2826 | Veraltet. |
| Compilerfehler C2827 | Der Operator „operator“ kann nicht global in unärer Form überschrieben werden |
| Compilerfehler C2828 | Der Operator „operator“ kann nicht global in binärer Form überschrieben werden. |
| Compilerfehler C2829 | Der Operator „operator“ darf keine Variablenparameterliste aufweisen |
| Compilerfehler C2830 | Nur die placement-Parameter für den Operator „new“ können Standardwerte haben |
| Compilerfehler C2831 | Der Operator „operator“ darf keine Standardparameter aufweisen |
| Compilerfehler C2832 | „identifier“: Ein Verweistyp darf nicht mit einem Wert initialisiert sein |
| Compilerfehler C2833 | Der Operator „token“ ist kein bekannter Operator oder Typ |
| Compilerfehler C2834 | Der Operator „operator“ muss global qualifiziert sein (Veraltet in Visual Studio 2022.) |
| Compilerfehler C2835 | Die benutzerdefinierte Konvertierung „type“ unterstützt keine formalen Parameter |
| Compilerfehler C2836 | „identifier“: Nur ein nicht statischer Datenmember einer Union darf einen Standardmemberinitialisierer aufweisen |
| Compilerfehler C2837 | „function“: OpenMP-Direktiven und #pragma loop(hint_parallel) dürfen nicht in derselben Funktion verwendet werden. |
| Compilerfehler C2838 | 'identifier': Unzulässiger vollständig angegebener Name in Elementdeklaration |
| Compilerfehler C2839 | Ungültiger Rückgabetyp „type“ für überladenen Operator „->“ |
| Compilerfehler C2840 | Das Anweisungswortargument ist keine Konstante |
| Compilerfehler C2841 | Das Registerargument ist keine Konstante |
| Compilerfehler C2842 | „class“: Ein verwalteter Typ/WinRT-Typ kann keinen eigenen Operator „new“ oder Operator „delete“ definieren. |
| Compilerfehler C2843 | „member“: Die Adresse eines nicht statischen Datenmembers oder einer Methode eines verwalteten Typs/WinRT-Typs kann nicht übernommen werden |
| Compilerfehler C2844 | „identifier“: Darf kein Member der Schnittstelle „interface“ sein |
| Compilerfehler C2845 | „type“: Die Zeigerarithmetik ist für diesen Typ nicht zulässig |
| Compilerfehler C2846 | „interface“: Eine Schnittstelle darf keinen Konstruktor besitzen |
| Compilerfehler C2847 | sizeof kann nicht auf den verwalteten Typ/WinRT-Typ „class“ angewendet werden |
| Compilerfehler C2848 | „class“: Ein verwalteter Typ/WinRT-Typ darf kein Member einer Union sein |
| Compilerfehler C2849 | „interface“: Eine Schnittstelle darf keinen Destruktor besitzen |
| Compilerfehler C2850 | „construct“: Nur für den Dateibereich zulässig; kann nicht in Konstrukt geschachtelt werden |
| Compilerfehler C2851 | „enum“: Eine öffentliche WinRT-Enumeration darf nur „int“ oder „unsigned int“ als Basistyp verwenden |
| Compilerfehler C2852 | „identifier“: Nur Datenmember können innerhalb einer Klasse initialisiert werden |
| Compilerfehler C2853 | „identifier“: Ein nicht statischer Datenmember darf keinen Typ mit dem Inhalt „auto“ aufweisen |
| Compilerfehler C2854 | Syntaxfehler in #pragma hdrstop |
| Compilerfehler C2855 | Die Befehlszeilenoption „option“ stimmt nicht mit dem vorkompilierten Header überein |
| Compilerfehler C2856 | #pragma hdrstop kann sich nicht innerhalb eines #if-Blocks befinden |
| Compilerfehler C2857 | Die mit der Befehlszeilenoption /Ycfilename angegebene „#include“-Anweisung konnte in der Quelldatei nicht gefunden werden |
| Compilerfehler C2858 | Die Befehlszeilenoption „/Yc (/Fdfilename)“ stimmt nicht mit dem vorkompilierten Header mit „/Fdfilename“ überein (Veraltet in Visual Studio 2022.) |
| Compilerfehler C2859 | filename ist nicht die filetype-Datei, die beim Erstellen dieses vorkompilierten Headers verwendet wurde. Erstellen Sie den vorkompilierten Header neu. |
| Compilerfehler C2860 | „void“ kann mit Ausnahme von „(void)“ nicht als Funktionsparameter verwendet werden |
| Compilerfehler C2861 | „declaration“: Eine Schnittstellenmemberfunktion kann nicht definiert werden |
| Compilerfehler C2862 | „interface“: Eine Schnittstelle kann nur öffentliche Member besitzen |
| Compilerfehler C2863 | „interface“: Eine Schnittstelle kann keine Friends besitzen |
| Compilerfehler C2864 | „identifier“: Ein statischer Datenmember mit einem Initialisierer in der Klasse muss einen nicht flüchtigen konstanten integralen Typ aufweisen |
| Compilerfehler C2865 | „operator“: Nicht zulässiger Vergleich für Objektzeiger/-handle |
| Compilerfehler C2866 | Veraltet. |
| Compilerfehler C2867 | „identifier“: Ist kein Namespace |
| Compilerfehler C2868 | „identifier“: Nicht zulässige Syntax für die Verwendungsdeklaration; es wird ein qualifizierter Name erwartet |
| Compilerfehler C2869 | „identifier“: Wurde bereits als Namespace definiert |
| Compilerfehler C2870 | „identifier“: Eine Namespace-Definition muss entweder im Dateibereich oder unmittelbar in einer anderen Namespace-Definition angezeigt werden |
| Compilerfehler C2871 | „identifier“: Es ist kein Namespace mit diesem Namen vorhanden |
| Compilerfehler C2872 | „identifier“: Mehrdeutiges Symbol |
| Compilerfehler C2873 | „symbol“: Das Symbol kann nicht in einer using-Deklaration verwendet werden |
| Compilerfehler C2874 | Die using-Deklaration verursacht eine mehrfache Deklaration von „identifier“ |
| Compilerfehler C2875 | Die using-Deklaration verursacht eine mehrfache Deklaration von „class::identifier“ (Veraltet in Visual Studio 2022.) |
| Compilerfehler C2876 | „class::member“: Nicht alle Überladungen sind verfügbar |
| Compilerfehler C2877 | Auf „member“ kann von „class“ aus nicht zugegriffen werden |
| Compilerfehler C2878 | „identifier“: Es ist kein Namespace oder keine Klasse mit diesem Namen vorhanden |
| Compilerfehler C2879 | „identifier“: Nur ein vorhandener Namespace kann einen alternativen Namen von einer Namespace-Aliasdefinition erhalten. |
| Compilerfehler C2880 | __swi oder __hvc erfordert eine gültige Konstante als erstes Argument (SWI-Nummer) |
| Compilerfehler C2881 | „identifier“: Wird bereits als Alias für „class“ verwendet |
| Compilerfehler C2882 | „identifier“: Nicht zulässige Verwendung eines Namespace-Bezeichners in einem Ausdruck |
| Compilerfehler C2883 | „function“: Die Funktionsdeklaration steht in Konflikt mit „identifier“, der durch eine using-Deklaration definiert wurde |
| Compilerfehler C2884 | „identifier“: Wurde durch eine using-Deklaration definiert und steht in Konflikt mit einer lokalen Funktion „function“ |
| Compilerfehler C2885 | „class::identifier“: Keine gültige using-Deklaration im Gültigkeitsbereich der Nichtklasse |
| Compilerfehler C2886 | „class::identifier“: Das Symbol kann nicht in der using-Deklaration eines Members verwendet werden |
| Compilerfehler C2887 | __swi oder __hvc kann nicht mehr als fünf Argumente haben (SWI-Nummer, r0 – r3) |
| Compilerfehler C2888 | „identifier“: Das Symbol darf nicht im Namespace „namespace“ definiert werden |
| Compilerfehler C2889 | „class“: Ein verwalteter Klassentyp/WinRT-Klassentyp kann keine virtuelle Basisklasse sein |
| Compilerfehler C2890 | „class“: Eine Verweisklasse darf nur eine Nichtschnittstellen-Basisklasse aufweisen |
| Compilerfehler C2891 | „parameter“: Die Adresse eines Vorlagenparameters kann nicht verwendet werden |
| Compilerfehler C2892 | Die lokale Klasse darf keine Membervorlagen haben |
| Compilerfehler C2893 | Fehler beim Spezialisieren der Funktionsvorlage „template“ |
| Compilerfehler C2894 | Vorlagen können nicht mit „C“-Bindung deklariert werden |
| Compilerfehler C2895 | „declaration“: Eine Funktionsvorlage, die mit dllimport deklariert wurde, kann nicht explizit instanziiert werden |
| Compilerfehler C2896 | „function1“: Kann keine Funktionsvorlage/generische Funktion „function2“ als Funktionsargument verwenden (in Visual Studio 2022 veraltet.) |
| Compilerfehler C2897 | Ein Destruktor/Finalizer kann keine Funktionsvorlage sein |
| Compilerfehler C2898 | „declaration“: Vorlagen der Memberfunktion dürfen nicht virtuell sein |
| Compilerfehler C2899 | Veraltet. |
Weitere Informationen
C/C++-Compiler und -Buildtools: Fehler und Warnungen
Compilerfehler C2000 bis C3999, C7000 bis C7999