Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Artykuły w tej sekcji dokumentacji wyjaśniają podzbiór komunikatów o błędach generowanych przez kompilator.
Ważne
Kompilatory i narzędzia kompilacji programu Visual Studio mogą zgłaszać wiele rodzajów błędów i ostrzeżeń. Po znalezieniu błędu lub ostrzeżenia narzędzia kompilacji mogą podjąć założenia dotyczące intencji kodu i próby kontynuowania, dzięki czemu więcej problemów można zgłaszać w tym samym czasie. Jeśli narzędzia przyjmą błędne założenie, późniejsze błędy lub ostrzeżenia mogą nie mieć zastosowania do projektu. W przypadku naprawiania problemów w projekcie zawsze należy zacząć od pierwszego zgłoszonego błędu lub ostrzeżenia i często ponownie skompilować. Jedna poprawka może spowodować, że wiele kolejnych błędów zniknie.
Aby uzyskać pomoc dotyczącą konkretnego komunikatu diagnostycznego w programie Visual Studio, wybierz go w oknie Dane wyjściowe i naciśnij F1 . Program Visual Studio otwiera stronę dokumentacji dla tego błędu, jeśli istnieje. Możesz również użyć narzędzia wyszukiwania w górnej części strony, aby znaleźć artykuły dotyczące określonych błędów lub ostrzeżeń. Możesz też przejrzeć listę błędów i ostrzeżeń według narzędzia i wpisać spis treści na tej stronie.
Uwaga
Nie każdy błąd lub ostrzeżenie programu Visual Studio nie jest udokumentowane. W wielu przypadkach komunikat diagnostyczny zawiera wszystkie dostępne informacje. Jeśli wylądowałeś na tej stronie, gdy użyto F1 i uważasz, że komunikat o błędzie lub ostrzeżeniu wymaga dodatkowego wyjaśnienia, daj nam znać. Możesz użyć przycisków opinii na tej stronie, aby zgłosić problem z dokumentacją w usłudze GitHub. Jeśli uważasz, że błąd lub ostrzeżenie jest nieprawidłowe lub znaleziono inny problem z zestawem narzędzi, zgłoś problem z produktem w witrynie Społeczność deweloperów. Możesz również wysłać opinię i wprowadzić usterki w środowisku IDE. W programie Visual Studio przejdź do paska menu, a następnie wybierz pozycję Pomoc Wyślij zgłoszenie o > problemie lub prześlij sugestię, korzystając z opcji Wyślij opinię w pomocy > > Wyślij sugestię>. Niektóre tematy błędów kompilatora zostały utworzone, które nie są emitowane przez kompilator, a teraz przekieruj do tej strony.
Dodatkową pomoc dotyczącą błędów i ostrzeżeń można znaleźć na forach pytań i odpowiedzi na platformie Microsoft Learn. Możesz też wyszukać numer błędu lub ostrzeżenia w witrynie Społeczności deweloperów programu Visual Studio C++. Możesz również wyszukać rozwiązanie Stack Overflow , aby znaleźć rozwiązania.
Aby uzyskać linki do dodatkowych zasobów pomocy i społeczności, zobacz Visual C++ Help and Community (Pomoc i społeczność języka Visual C++).
Komunikaty o błędach
| Błąd | Komunikat |
|---|---|
| Błąd kompilatora C2300 | "class": klasa nie ma destruktora o nazwie "~class" |
| Błąd kompilatora C2301 | po lewej stronie "->~identifier" musi wskazywać klasę/strukturę/unię |
| Błąd kompilatora C2302 | po lewej stronie '.~identifier' musi mieć typ klasy/struktury/unii |
| Błąd kompilatora C2303 | Nie można używać obsługi wyjątków strukturalnych w kohroutynie |
| Błąd kompilatora C2304 | "Słowo kluczowe" nie może być używane wewnątrz bloku catch |
| Błąd kompilatora C2305 | Plik nie zawiera informacji o debugowaniu dla tego modułu |
| Błąd kompilatora C2306 | Element "file" nie zawiera najnowszych informacji o debugowaniu dla tego modułu |
| Błąd kompilatora C2307 | Jeśli kompilacja przyrostowa jest włączona, należy przenieść dyrektywę pragma poza funkcję |
| Błąd kompilatora C2308 | łączenie niezgodnych ciągów |
| Błąd kompilatora C2309 | Program obsługi catch oczekiwał deklaracji wyjątku nawiasu |
| Błąd kompilatora C2310 | programy obsługi catch muszą określać jeden typ |
| Błąd kompilatora C2311 | "type": jest przechwytywane przez '...' numer wiersza |
| Błąd kompilatora C2312 | "type1": jest przechwytywane przez "type2" w numerze wiersza |
| Błąd kompilatora C2313 | "type1": jest przechwytywane przez odwołanie ('type2') w numerze wiersza |
| Błąd kompilatora C2314 | Słowo kluczowe "keyword1" jest przestarzałe: zamiast tego użyj słowa kluczowego 'keyword2'. |
| Błąd kompilatora C2315 | "type1": odwołanie jest przechwytywane przez "type2" w numerze wiersza |
| Błąd kompilatora C2316 | "type": nie można przechwycić, ponieważ destruktor i/lub konstruktor kopiowania są niedostępne lub usunięte |
| Błąd kompilatora C2317 | Blok "try" rozpoczynający się w wierszu "number" nie ma procedur obsługi catch |
| Błąd kompilatora C2318 | brak bloku try skojarzonego z tą procedurą obsługi catch |
| Błąd kompilatora C2319 | Po instrukcji "try/catch" należy wykonać instrukcję złożoną. Brak elementu "{" |
| Błąd kompilatora C2320 | oczekiwano parametru ":", aby postępować zgodnie ze specyfikatorem dostępu "specyfikator" |
| Błąd kompilatora C2321 | "identifier" jest słowem kluczowym i nie można go użyć w tym kontekście |
| Błąd kompilatora C2322 | "identifier": adres dllimport "identifier" nie jest statyczny |
| Błąd kompilatora C2323 | "identifier": nienależące do operatora składowego nowe lub usunięte funkcje mogą nie być zadeklarowane jako statyczne lub w przestrzeni nazw innej niż globalna przestrzeń nazw |
| Błąd kompilatora C2324 | "identifier": nieoczekiwane z prawej strony "::~" |
| Błąd kompilatora C2325 | "type1": nieoczekiwany typ po prawej stronie "->~": oczekiwano "type2" |
| Błąd kompilatora C2326 | "deklarator": funkcja nie może uzyskać dostępu do "identyfikatora" |
| Błąd kompilatora C2327 | "identyfikator": nie jest nazwą typu, statycznym ani modułem wyliczania |
| Błąd kompilatora C2328 | "słowo kluczowe": słowo kluczowe nie jest jeszcze obsługiwane |
| Błąd kompilatora C2329 | "identyfikator": __ptr64 niedostępne dla wskaźników do funkcji |
| Błąd kompilatora C2330 | Wartość "implementation_key( )" jest prawidłowa tylko w regionie ograniczonym przez #pragma start_map_region/stop_map_region |
| Błąd kompilatora C2331 | dostęp do "identyfikatora" jest teraz zdefiniowany jako "accessibility1", wcześniej został zdefiniowany jako "accessibility2" |
| Błąd kompilatora C2332 | "typedef": brak nazwy tagu |
| Błąd kompilatora C2333 | "function": błąd w deklaracji funkcji; pomijanie treści funkcji |
| Błąd kompilatora C2334 | nieoczekiwane tokeny poprzedzające "token"; pomijanie widocznej treści funkcji |
| Błąd kompilatora C2335 | "identifier": nie można wprowadzić typu na liście parametrów funkcji |
| Błąd kompilatora C2336 | "type": niedozwolony typ |
| Błąd kompilatora C2337 | "attribute": nie znaleziono atrybutu |
| Błąd kompilatora C2338 | (komunikat o błędzie od zewnętrznego dostawcy) |
| Błąd kompilatora C2339 | "identifier": niedozwolony typ w osadzonym-IDL |
| Błąd kompilatora C2340 | "identifier": "static" można używać tylko w definicji klasy |
| Błąd kompilatora C2341 | "sekcja": segment musi być zdefiniowany przy użyciu #pragma data_seg, code_seg lub sekcji przed użyciem |
| Błąd kompilatora C2342 | błąd składni: kwalifikatory typu powodujące konflikt |
| Błąd kompilatora C2343 | "section": atrybuty sekcji powodujące konflikt |
| Błąd kompilatora C2344 | align(liczba): wyrównanie musi być mocą dwóch |
| Błąd kompilatora C2345 | align(liczba): niedozwolona wartość wyrównania |
| Błąd kompilatora C2346 | Nie można skompilować funkcji jako natywnej: "wyjaśnienie" |
| Błąd kompilatora C2347 | Nieaktualne. |
| Błąd kompilatora C2348 | "type": nie jest agregacji w stylu C, nie można wyeksportować w osadzonym IDL |
| Błąd kompilatora C2349 | Nie można skompilować funkcji jako zarządzanej: "wyjaśnienie"; użyj #pragma niezarządzanych |
| Błąd kompilatora C2350 | Element "identifier" nie jest statycznym elementem członkowskim |
| Błąd kompilatora C2351 | przestarzała składnia inicjowania konstruktora języka C++ |
| Błąd kompilatora C2352 | "identifier": nielegalne wywołanie funkcji niestacjonanej składowej |
| Błąd kompilatora C2353 | specyfikacja wyjątku jest niedozwolona |
| Błąd kompilatora C2354 | Nieaktualne. |
| Błąd kompilatora C2355 | "to": można odwoływać się tylko do funkcji niestacjonanych składowych lub niestacjonowanych inicjatorów składowych danych |
| Błąd kompilatora C2356 | Segment inicjowania nie może ulec zmianie podczas jednostki tłumaczenia |
| Błąd kompilatora C2357 | "identifier": musi być funkcją typu "type" |
| Błąd kompilatora C2358 | "identifier": nie można zdefiniować właściwości statycznej poza definicją klasy |
| Błąd kompilatora C2359 | Nieaktualne. |
| Błąd kompilatora C2360 | Inicjowanie identyfikatora jest pomijane przez etykietę "case" |
| Błąd kompilatora C2361 | Inicjowanie "identyfikatora" jest pomijane przez etykietę "domyślną" |
| Błąd kompilatora C2362 | Inicjowanie identyfikatora jest pomijane przez etykietę "goto" |
| Błąd kompilatora C2363 | Funkcja wewnętrznego limitu liczbowego kompilatora wymaga argumentu literału ciągu |
| Błąd kompilatora C2364 | "type": niedozwolony typ atrybutu niestandardowego |
| Błąd kompilatora C2365 | "member1": ponowne zdefiniowanie; poprzednia definicja była "member2" |
| Błąd kompilatora C2366 | "identyfikator": ponowne zdefiniowanie; różne specyfikatory implementation_key |
| Błąd kompilatora C2367 | Nieaktualne. |
| Błąd kompilatora C2368 | "identyfikator": ponowne zdefiniowanie; różne specyfikatory alokacji |
| Błąd kompilatora C2369 | "identyfikator": ponowne zdefiniowanie; różne indeksy dolny |
| Błąd kompilatora C2370 | "identyfikator": ponowne zdefiniowanie; inna klasa magazynu |
| Błąd kompilatora C2371 | "identyfikator": ponowne zdefiniowanie; różne typy podstawowe |
| Błąd kompilatora C2372 | "identyfikator": ponowne zdefiniowanie; różne typy pośredni |
| Błąd kompilatora C2373 | "identyfikator": ponowne zdefiniowanie; różne modyfikatory typów |
| Błąd kompilatora C2374 | "identifier": redefinition; multiple initialization |
| Błąd kompilatora C2375 | "identyfikator": ponowne zdefiniowanie; różne powiązania |
| Błąd kompilatora C2376 | "identifier": redefinition; different based allocation |
| Błąd kompilatora C2377 | "identifier": redefinition; typedef nie może być przeciążony żadnym innym symbolem |
| Błąd kompilatora C2378 | "identifier": redefinition; symbol nie może być przeciążony definicją typu |
| Błąd kompilatora C2379 | Numer parametru formalnego ma inny typ po podwyższeniu poziomu |
| Błąd kompilatora C2380 | typy poprzedzające "identyfikator" (konstruktor z typem zwrotnym lub niedozwolone ponowne zdefiniowanie bieżącej nazwy klasy?) |
| Błąd kompilatora C2381 | "identyfikator": ponowne zdefiniowanie; "__declspec(noreturn)" lub "[[noreturn]" różni się |
| Błąd kompilatora C2382 | "identyfikator": ponowne zdefiniowanie; różne specyfikacje wyjątków |
| Błąd kompilatora C2383 | "identifier": argumenty domyślne nie są dozwolone na tym symbolu |
| Błąd kompilatora C2384 | "składowa": nie można zastosować thread_local ani __declspec(wątku) do składowej klasy zarządzanej/WinRT |
| Błąd kompilatora C2385 | niejednoznaczny dostęp do elementu członkowskiego |
| Błąd kompilatora C2386 | "identifier": symbol o tej nazwie już istnieje w bieżącym zakresie |
| Błąd kompilatora C2387 | "identifier": niejednoznaczna klasa bazowa |
| Błąd kompilatora C2388 | "identifier": nie można zadeklarować symbolu zarówno z __declspec(appdomain) i __declspec(proces) |
| Błąd kompilatora C2389 | "operator": nielegalny operand "nullptr" |
| Błąd kompilatora C2390 | "identifier": niepoprawna klasa magazynu "specyfikator" |
| Błąd kompilatora C2391 | "identifier": "friend" nie można użyć podczas definicji typu |
| Błąd kompilatora C2392 | "member1": kowariantne typy zwracane nie są obsługiwane w typach zarządzanych/WinRT, w przeciwnym razie "member2" zostanie zastąpiony |
| Błąd kompilatora C2393 | "symbol": symbol per-appdomain nie można przydzielić w segmencie "segment" |
| Błąd kompilatora C2394 | 'type::operator operator': nieprawidłowy operator CLR/WinRT. Co najmniej jeden parametr musi mieć następujące typy: 'T^', 'T^%', 'T^&', gdzie T = 'type' |
| Błąd kompilatora C2395 | 'type::operator operator': nieprawidłowy operator CLR/WinRT. Co najmniej jeden parametr musi mieć następujące typy: 'T', 'T%', 'T&', 'T^', 'T^%', 'T^%', 'T^&', gdzie T = 'type' |
| Błąd kompilatora C2396 | "type1::operator type2": funkcja konwersji zdefiniowanej przez użytkownika CLR/WinRT jest nieprawidłowa. Musi konwertować z lub konwertować na: 'T^', 'T^%', 'T^&', gdzie T = 'type1' |
| Błąd kompilatora C2397 | konwersja z "type1" na "type2" wymaga konwersji zawężającej |
| Błąd kompilatora C2398 | Element "number": konwersja z "type1" na "type2" wymaga konwersji zawężającej |
| Błąd kompilatora C2399 | Nieaktualne. |
Zobacz też
Błędy i ostrzeżenia kompilatora C/C++ i narzędzi kompilacji
Błędy kompilatora C2001 — C3999, C7000 – C7999