Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
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 C3400 | Zależność ograniczenia cyklicznego obejmująca "ograniczenie1" i "constraint2" |
| Błąd kompilatora C3401 | "specyfikator": nieprawidłowy specyfikator dostępu do zestawu — tylko "prywatny" jest dozwolony w szablonach klas |
| Błąd kompilatora C3402 | "function": nie można rozpoznać przeciążenia z wyjątkiem bieżącego zakresu |
| Błąd kompilatora C3403 | thread_local nie można używać z /clr:pure lub /clr:safe |
| Błąd kompilatora C3404 | "construct": nieoczekiwany błąd składni |
| Błąd kompilatora C3405 | "function": nie można rozpoznać przeciążenia bez pełnego deskryptora |
| Błąd kompilatora C3406 | "słowo kluczowe": nie można użyć w specyfikatorze typu opracowanego |
| Błąd kompilatora C3407 | "type" nie można użyć w tym kontekście |
| Błąd kompilatora C3408 | "attribute": atrybut nie jest dozwolony w definicjach szablonów |
| Błąd kompilatora C3409 | pusty blok atrybutów jest niedozwolony |
| Błąd kompilatora C3410 | "identifier": typ jawnego wystąpienia "type" nie jest zgodny z typem szablonu zmiennej "type" |
| Błąd kompilatora C3411 | Typ jest nieprawidłowy jako rozmiar tablicy, ponieważ nie jest to typ liczb całkowitych |
| Błąd kompilatora C3412 | "specjalizacja": nie można specjalizować szablonu w bieżącym zakresie |
| Błąd kompilatora C3413 | "template": nieprawidłowe wystąpienie jawne |
| Błąd kompilatora C3414 | "function": nie można zdefiniować zaimportowanych funkcji składowych |
| Błąd kompilatora C3415 | wiele sekcji "sekcja" znalezionych z różnymi atrybutami (wartość 0x) |
| Błąd kompilatora C3416 | Nieaktualne. |
| Błąd kompilatora C3417 | "deklarator": typy wartości nie mogą zawierać funkcji specjalnych składowych zdefiniowanych przez użytkownika |
| Błąd kompilatora C3418 | specyfikator dostępu "specyfikator" nie jest obsługiwany |
| Błąd kompilatora C3419 | Nieaktualne. |
| Błąd kompilatora C3420 | "function": finalizator nie może być wirtualny |
| Błąd kompilatora C3421 | "function": nie można wywołać finalizatora dla tej klasy, ponieważ jest niedostępny lub nie istnieje |
| Błąd kompilatora C3422 | "deklaracja": niezgodne typy "type" i "type" |
| Błąd kompilatora C3423 | Nieaktualne. |
| Błąd kompilatora C3424 | "type": rzutowanie w stylu funkcji na typ tablicy jest niedozwolone |
| Błąd kompilatora C3425 | Nie można zgłosić wskaźnika do obiektu niekompletnego typu "type" |
| Błąd kompilatora C3426 | program nie może zgłaszać obiektu niekompletnego typu "type" |
| Błąd kompilatora C3427 | "context": "słowo kluczowe" nie może być używane z layout_version(liczba) |
| Błąd kompilatora C3428 | "context": słowo kluczowe można stosować tylko do deklaracji klas lub definicji |
| Błąd kompilatora C3429 | "context": "słowo kluczowe" nie może być stosowane do unii |
| Błąd kompilatora C3430 | wyliczenie w zakresie musi mieć nazwę |
| Błąd kompilatora C3431 | "identifier": type1 nie można ponownie zadeklarować jako type2 |
| Błąd kompilatora C3432 | "identifier": deklaracja przesyłania dalej wyliczenia niezakresowego musi mieć typ bazowy |
| Błąd kompilatora C3433 | "identifier": wszystkie deklaracje wyliczenia muszą mieć ten sam typ bazowy, był "type1" teraz "type2" |
| Błąd kompilatora C3434 | "context": wartość modułu wyliczającego "number" nie może być reprezentowana jako "typ", wartość to "number" |
| Błąd kompilatora C3435 | zestaw znaków "name" nie jest obsługiwany. |
| Błąd kompilatora C3436 | #pragma setlocale nie jest obsługiwane, gdy określono /source-charset, /execution-charset lub /utf-8 |
| Błąd kompilatora C3437 | #pragma execution_character_set nie jest obsługiwana, gdy określono /source-charset, /execution-charset lub /utf-8 |
| Błąd kompilatora C3438 | "context": "value" nie można zastosować do klasy zarządzanej/WinRT |
| Błąd kompilatora C3439 | layout_version(numer): nieprawidłowy numer wersji |
| Błąd kompilatora C3440 | "deklaracja": layout_version(liczba) niezgodna z poprzednią deklaracją |
| Błąd kompilatora C3441 | "deklaracja": nie można zastosować słowa kluczowego po zdefiniowaniu klasy |
| Błąd kompilatora C3442 | Inicjowanie wielu członków unii: "member1" i "member2" |
| Błąd kompilatora C3443 | Domyślny inicjator składowych "class" jest rekursywny |
| Błąd kompilatora C3444 | Pusta klasa agregacji "class" musi zostać zainicjowana za pomocą elementu "{}" |
| Błąd kompilatora C3445 | inicjalizacja typu copy-list nie może używać jawnego konstruktora |
| Błąd kompilatora C3446 | "class": domyślny inicjator składowy nie jest dozwolony dla składowej klasy wartości |
| Błąd kompilatora C3447 | operand operatora ?: warunkowego jest typu "void", ale inny operand nie jest wyrażeniem rzutu ani typem "void" |
| Błąd kompilatora C3448 | liczba identyfikatorów musi być zgodna z liczbą elementów tablicy lub elementów członkowskich w deklaracji powiązania strukturalnego |
| Błąd kompilatora C3449 | liczba identyfikatorów musi być zgodna z wartością std::tuple_size<type-name>::value w powiązaniu ustrukturyzowanym typu przypominającego krotkę |
| Błąd kompilatora C3450 | 'type': not an attribute; cannot specify []/[System::AttributeUsageAttributeWindows::Foundation::Metadata::AttributeUsageAttribute] |
| Błąd kompilatora C3451 | "attribute": nie można zastosować atrybutu niezarządzanych do "type" |
| Błąd kompilatora C3452 | element członkowski argumentu listy nie jest stały |
| Błąd kompilatora C3453 | "attribute": atrybut nie zastosowano, ponieważ kwalifikator "kwalifikator" nie był zgodny |
| Błąd kompilatora C3454 | [atrybut] niedozwolone w deklaracji klasy |
| Błąd kompilatora C3455 | "attribute": żaden z konstruktorów atrybutów nie pasuje do argumentów |
| Błąd kompilatora C3456 | [source-annotation-attribute] niedozwolone w deklaracji klasy managed/WinRT |
| Błąd kompilatora C3457 | "attribute": atrybut nie obsługuje argumentów bez nazw |
| Błąd kompilatora C3458 | "[attribute]": atrybut "[attribute]" już określony dla "identifier" |
| Błąd kompilatora C3459 | "[attribute]": atrybut dozwolony tylko dla indeksatora klas (domyślna właściwość indeksowana) |
| Błąd kompilatora C3460 | "typ": można przekazywać tylko typ zdefiniowany przez użytkownika |
| Błąd kompilatora C3461 | "type": można przekazywać dalej tylko typ zarządzany/WinRT |
| Błąd kompilatora C3462 | "typ": można przekazywać tylko importowany typ |
| Błąd kompilatora C3463 | "type": typ niedozwolony w atrybucie "implementuje" |
| Błąd kompilatora C3464 | "Typ" typu zagnieżdżonego nie można przekazać dalej |
| Błąd kompilatora C3465 | aby użyć typu "type", musisz odwołać się do zestawu "assembly" |
| Błąd kompilatora C3466 | "type": nie można przekazać specjalizacji klasy ogólnej |
| Błąd kompilatora C3467 | "type": ten typ został już przekazany |
| Błąd kompilatora C3468 | "type": można przekazywać tylko typ do zestawu: "identyfikator" nie jest zestawem |
| Błąd kompilatora C3469 | "type": nie można przekazać klasy ogólnej |
| Błąd kompilatora C3470 | "class": klasa nie może mieć zarówno indeksatora (domyślnej właściwości indeksowanej) jak i operatora[] |
| Błąd kompilatora C3471 | nowa nazwa modułu nazwa modułu (ustawiona w wierszu polecenia) powoduje konflikt z poprzednią nazwą modułu |
| Błąd kompilatora C3472 | nowa nazwa pliku wyjściowego (ustawiona w wierszu polecenia) powoduje konflikt z poprzednią nazwą pliku |
| Błąd kompilatora C3473 | nie określono nazwy ścieżki wyjściowej ani nazwy modułu. |
| Błąd kompilatora C3474 | nie można otworzyć pliku wyjściowego "nazwa pliku" |
| Błąd kompilatora C3475 | błąd składniowy w pliku wejściowym "nazwa pliku" |
| Błąd kompilatora C3476 | Nie można otworzyć pliku "nazwa pliku" dla danych wejściowych |
| Błąd kompilatora C3477 | lambda nie może pojawić się w nieowartym kontekście |
| Błąd kompilatora C3478 | "identifier": tablica nie może być przechwytywana przez kopię |
| Błąd kompilatora C3479 | Adnotacje SAL w wyrażeniach lambd nie są obsługiwane |
| Błąd kompilatora C3480 | "zmienna": zmienna przechwytywania lambda musi pochodzić z otaczającego zakresu funkcji |
| Błąd kompilatora C3481 | "identifier": nie znaleziono zmiennej przechwytywania lambda |
| Błąd kompilatora C3482 | "to" może być używane tylko jako przechwytywanie lambda w funkcji niestacjonanej składowej |
| Błąd kompilatora C3483 | Element "identifier" jest już częścią listy przechwytywania lambda |
| Błąd kompilatora C3484 | błąd składni: oczekiwany "->" przed typem zwracanym |
| Błąd kompilatora C3485 | Definicja lambda nie może mieć żadnych kwalifikatorów cv (przestarzałe w programie Visual Studio 2022). |
| Błąd kompilatora C3486 | parametr lambda nie może mieć argumentu domyślnego (przestarzałe w programie Visual Studio 2022). |
| Błąd kompilatora C3487 | "type": wszystkie wyrażenia zwracane muszą być wywoływane do tego samego typu: wcześniej był to "typ" |
| Błąd kompilatora C3488 | '&identifier' jest niedozwolony, gdy domyślny tryb przechwytywania jest przywoływane |
| Błąd kompilatora C3489 | Element "&identifier" jest wymagany, gdy domyślny tryb przechwytywania jest kopiowany |
| Błąd kompilatora C3490 | Nie można zmodyfikować identyfikatora, ponieważ jest on uzyskiwany za pośrednictwem obiektu const |
| Błąd kompilatora C3491 | "identyfikator": przechwytywanie kopii nie może być modyfikowane w niemłodalnej lambda |
| Błąd kompilatora C3492 | "identyfikator": nie można przechwycić członka anonimowego związku |
| Błąd kompilatora C3493 | "Identyfikator" nie może być przechwytywany niejawnie, ponieważ nie określono domyślnego trybu przechwytywania |
| Błąd kompilatora C3494 | "To" nie można jawnie przechwycić, ponieważ tryb przechwytywania otaczającego nie zezwala na to |
| Błąd kompilatora C3495 | "identyfikator": identyfikator w przechwytywaniu musi być zmienną z automatycznym czasem trwania magazynu zadeklarowanym w zakresie osiągnięcia lambda |
| Błąd kompilatora C3496 | "to" jest zawsze przechwytywane przez wartość: "&" ignorowane |
| Błąd kompilatora C3497 | nie można skonstruować wystąpienia lambda |
| Błąd kompilatora C3498 | "identyfikator": nie można przechwycić zmiennej, która ma typ zarządzany/WinRT |
| Błąd kompilatora C3499 | parametr lambda, który został określony, aby typ zwracany pustki nie może zwrócić wartości |
Zobacz też
Błędy i ostrzeżenia kompilatora C/C++ i narzędzi kompilacji
Błędy kompilatora C2000 — C3999, C7000 – C7999