Freigeben über


Compilerfehler C2300 bis C2399

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 C2300 class“: Die Klasse umfasst keinen Destruktor namens „~class“.
Compilerfehler C2301 Der linke Teil von „->~identifier“ muss auf eine Klasse/Struktur/Union zeigen.
Compilerfehler C2302 Der linke Teil von „.~identifier“ muss einen Klassen-/Struktur-/Unionstyp aufweisen.
Compilerfehler C2303 Die strukturierte Ausnahmebehandlung kann in einer Coroutine nicht verwendet werden.
Compilerfehler C2304 keyword“ kann nicht innerhalb eines catch-Blocks verwendet werden.
Compilerfehler C2305 file“ enthält keine Debuginformationen für dieses Modul.
Compilerfehler C2306 file“ enthält nicht die aktuellen Debuginformationen für dieses Modul.
Compilerfehler C2307 Das Pragma directive muss sich außerhalb der Funktion befinden, wenn die inkrementelle Kompilierung aktiviert ist.
Compilerfehler C2308 Nicht übereinstimmende Zeichenfolgen werden verkettet.
Compilerfehler C2309 Der catch-Handler erwartet eine in Klammern gesetzte Ausnahmendeklaration.
Compilerfehler C2310 Der catch-Handler muss einen Typ angeben.
Compilerfehler C2311 type“: Wird abgefangen von „...“ in Zeile number
Compilerfehler C2312 type1“: Wird abgefangen von „type2“ in Zeile number
Compilerfehler C2313 type1“: Wird abgefangen durch den Verweis („type2“) in Zeile number
Compilerfehler C2314 Das Schlüsselwort „keyword1“ ist veraltet: Verwenden Sie stattdessen „keyword2“.
Compilerfehler C2315 type1“: Der Verweis wird von „type2“ in Zeile number abgefangen.
Compilerfehler C2316 type“: Kann nicht abgefangen werden, da auf den Destruktor und/oder den Kopierkonstruktor nicht zugegriffen werden kann oder diese gelöscht wurden
Compilerfehler C2317 Der try-Block ab Zeile „number“ umfasst keine catch-Handler.
Compilerfehler C2318 Kein try-Block mit diesem catch-Handler verbunden
Compilerfehler C2319 Auf 'try/catch' muss eine zusammengesetzte Anweisung folgen. '{' fehlt
Compilerfehler C2320 Es wird erwartet, dass „:“ auf den Zugriffsspezifizierer „specifier“ folgt.
Compilerfehler C2321 identifier“ ist ein Schlüsselwort und kann in diesem Kontext nicht verwendet werden.
Compilerfehler C2322 identifier“: Die Adresse von dllimport „identifier“ ist nicht statisch.
Compilerfehler C2323 identifier“: Die Nicht-Memberoperatorfunktionen „new“ bzw. „delete“ dürfen nicht als statisch oder in einem anderen Namespace als dem globalen Namespace deklariert werden.
Compilerfehler C2324 identifier“: Nicht erwartet rechts neben „::~“
Compilerfehler C2325 type1“: Nicht erwarteter Typ rechts neben „->~“: Erwarteter Typ „type2
Compilerfehler C2326 declarator“: Die Funktion kann nicht auf „identifier“ zugreifen.
Compilerfehler C2327 identifier“: Ist kein Typname, nicht statisch und kein Enumerator
Compilerfehler C2328 keyword“: Das Schlüsselwort wird noch nicht unterstützt.
Compilerfehler C2329 identifier“: „__ptr64“ ist nicht für Zeiger auf Funktionen verfügbar.
Compilerfehler C2330 „implementation_key( )“ ist nur in einem Bereich gültig, der durch „#pragma start_map_region“ bzw. „#pragma stop_map_region“ eingeschlossen ist.
Compilerfehler C2331 Der Zugriff auf „identifier“ wurde jetzt als „accessibility1“ definiert, zuvor wurde er als „accessibility2“ definiert.
Compilerfehler C2332 typedef“: Fehlender Tagname
Compilerfehler C2333 function“: Es liegt ein Fehler in der Funktionsdeklaration vor. Der Funktionstext wird übersprungen.
Compilerfehler C2334 Unerwartete(s) Token vor „token“. Der sichtbare Funktionstext wird übersprungen.
Compilerfehler C2335 identifier“: Ein Typ kann nicht in der Parameterliste einer Funktion eingeführt werden.
Compilerfehler C2336 type“: Unzulässiger Typ
Compilerfehler C2337 attribute“: Das Attribut wurde nicht gefunden.
Compilerfehler C2338 (Fehlermeldung vom externem Anbieter)
Compilerfehler C2339 identifier“: Unzulässiger Typ in eingebetteter IDL
Compilerfehler C2340 identifier“: „static“ kann nur innerhalb einer Klassendefinition verwendet werden.
Compilerfehler C2341 section“: Das Segment muss vor der Verwendung mit „#pragma data_seg“, „#pragma code_seg“ oder „section“ definiert werden.
Compilerfehler C2342 Syntaxfehler: Die Typqualifizierer stehen in Konflikt.
Compilerfehler C2343 section“: Die Abschnittsattribute stehen in Konflikt.
Compilerfehler C2344 align(number): Die Ausrichtung muss eine Potenz von 2 sein.
Compilerfehler C2345 align(number): Unzulässiger Ausrichtungswert
Compilerfehler C2346 function“ kann nicht als nativ kompiliert werden: „explanation
Compilerfehler C2347 Veraltet.
Compilerfehler C2348 type“: Ist kein Aggregat im C-Format und kann nicht in eingebetteter IDL exportiert werden
Compilerfehler C2349 function“ kann nicht als verwaltete Funktion kompiliert werden: „explanation“; „#pragma unmanaged“ verwenden
Compilerfehler C2350 identifier“ ist kein statisches Element.
Compilerfehler C2351 Veraltete Syntax für die Initialisierung eines C++-Konstruktors
Compilerfehler C2352 identifier“: Unzulässiger Aufruf einer nicht statischen Memberfunktion
Compilerfehler C2353 Ausnahmespezifikation nicht zulässig
Compilerfehler C2354 Veraltet.
Compilerfehler C2355 „this“: Nur innerhalb nicht statischer Memberfunktionen oder nicht statischer Datenmemberinitialisierer verfügbar.
Compilerfehler C2356 Initialisierungssegment darf während der Übersetzungseinheit nicht geändert werden.
Compilerfehler C2357 identifier“: Muss eine Funktion vom Typ „type“ sein
Compilerfehler C2358 identifier“: Eine statische Eigenschaft kann nicht außerhalb einer Klassendefinition definiert werden.
Compilerfehler C2359 Veraltet.
Compilerfehler C2360 Die Initialisierung von „identifier“ wird von der Bezeichnung „case“ übersprungen.
Compilerfehler C2361 Die Initialisierung von „identifier“ wird von der Bezeichnung „default“ übersprungen.
Compilerfehler C2362 Die Initialisierung von „identifier“ wird von „goto Bezeichnung“ übersprungen.
Compilerfehler C2363 Die inhärente numerische limit-Funktion des Compilers erfordert ein Zeichenfolgenliteral-Argument.
Compilerfehler C2364 type“: Unzulässiger Typ für das benutzerdefinierte Attribut
Compilerfehler C2365 member1“: Neudefinition; vorherige Definition war „member2
Compilerfehler C2366 identifier“: Neudefinition; unterschiedlicher implementation_key-Spezifizierer
Compilerfehler C2367 Veraltet.
Compilerfehler C2368 identifier“: Neudefinition; unterschiedliche allocation-Spezifizierer
Compilerfehler C2369 identifier“: Neudefinition; unterschiedliche Feldindizes
Compilerfehler C2370 identifier“: Neudefinition; unterschiedliche Speicherklassen
Compilerfehler C2371 identifier“: Neudefinition; unterschiedliche Basistypen
Compilerfehler C2372 identifier“: Neudefinition; unterschiedliche Dereferenzierungstypen
Compilerfehler C2373 identifier“: Neudefinition; unterschiedliche Typmodifizierer
Compilerfehler C2374 identifier“: Neudefinition; Mehrfachinitialisierung
Compilerfehler C2375 identifier“: Neudefinition; unterschiedliche Bindung
Compilerfehler C2376 identifier“: Neudefinition; unterschiedliche based-Zuordnung
Compilerfehler C2377 identifier“: Neudefinition; „typedef“ kann nicht mit einem anderen Symbol überladen werden
Compilerfehler C2378 identifier“: Neudefinition; Symbol kann nicht mit „typedef“ überladen werden
Compilerfehler C2379 Der formale Parameter number weist nach der Höherstufung einen anderen Typ auf.
Compilerfehler C2380 Typ(en) vor „identifier“ – Konstruktor mit Ergebnistyp oder unzulässige Neudefinition eines Klassennamens?
Compilerfehler C2381 identifier“: Neudefinition; „__declspec(noreturn)“ oder "[[noreturn]]" unterscheiden sich.
Compilerfehler C2382 identifier“: Neudefinition; unterschiedliche Ausnahmespezifikationen
Compilerfehler C2383 identifier“: Für dieses Symbol sind Standardargumente nicht zulässig.
Compilerfehler C2384 member“: „thread_local“ oder „__declspec(thread)“ kann nicht auf einen Member einer verwalteten Klasse oder WinRT-Klasse angewendet werden.
Compilerfehler C2385 Mehrdeutiger Zugriff von „member
Compilerfehler C2386 identifier“: Ein Symbol mit diesem Namen ist bereits im aktuellen Gültigkeitsbereich vorhanden.
Compilerfehler C2387 identifier“: Mehrdeutige Basisklasse
Compilerfehler C2388 identifier“: Ein Symbol kann nicht mit „__declspec(appdomain)“ und „__declspec(process)“ gleichzeitig deklariert werden.
Compilerfehler C2389 operator“: Ungültiger Operand „nullptr“
Compilerfehler C2390 identifier“: Falsche Speicherklasse „specifier
Compilerfehler C2391 identifier“: „friend“ innerhalb von Typdefinitionen nicht zulässig
Compilerfehler C2392 member1“: Covariant-Rückgabetypen werden in verwalteten Typen oder WinRT-Typen nicht unterstützt (andernfalls würde „member2“ überschrieben werden).
Compilerfehler C2393 symbol“: Ein anwendungsdomänenspezifisches Symbol kann nicht in Segment „segment“ zugeordnet werden.
Compilerfehler C2394 type::operator operator“: Der CLR-/WinRT-Operator ist ungültig. Mindestens ein Parameter muss einen der folgenden Typen aufweisen: „T^“, „T^%“, „T^&“, wobei T = „type
Compilerfehler C2395 type::operator operator“: Der CLR-/WinRT-Operator ist ungültig. Mindestens ein Parameter muss einen der folgenden Typen aufweisen: „T“, „T%“, „T&“, „T^“, „T^%“, „T^&“, wobei T = „type“.
Compilerfehler C2396 type1::operator type2“: Die benutzerdefinierte CLR-/WinRT-Konvertierungsfunktion ist ungültig. Muss entweder von oder zu Folgendem konvertiert werden: „T^“, „T^%“, „T^&“, wobei T = „type1
Compilerfehler C2397 Die Konvertierung von „type1“ in „type2“ erfordert eine einschränkende Konvertierung.
Compilerfehler C2398 Element „number“: Die Konvertierung von „type1“ in „type2“ erfordert eine einschränkende Konvertierung.
Compilerfehler C2399 Veraltet.

Weitere Informationen

C/C++-Compiler und -Buildtools: Fehler und Warnungen
Compilerfehler C2001–C3999, C7000–C7999