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 C3100 | "identifier": nieznany kwalifikator atrybutu |
| Błąd kompilatora C3101 | niedozwolone wyrażenie dla nazwanego argumentu atrybutu "identifier" |
| Błąd kompilatora C3102 | Nieaktualne. |
| Błąd kompilatora C3103 | "identifier": powtórzony nazwany argument |
| Błąd kompilatora C3104 | argument niedozwolonego atrybutu |
| Błąd kompilatora C3105 | "symbol": nie można użyć jako atrybutu |
| Błąd kompilatora C3106 | "attribute": argumenty bez nazw muszą poprzedzać nazwane argumenty |
| Błąd kompilatora C3107 | "attribute": nie można zdefiniować funkcji składowych atrybutów natywnych |
| Błąd kompilatora C3108 | program nie może wyjąć typu jako listy inicjatora nie jest wyrażeniem |
| Błąd kompilatora C3109 | "identifier": metody interfejsu muszą używać konwencji wywoływania "__stdcall" lub "__cdecl" |
| Błąd kompilatora C3110 | "function": nie można przeciążyć metody interfejsu COM |
| Błąd kompilatora C3111 | Nie można użyć listy inicjatora jako argumentu domyślnego dla parametru szablonu |
| Błąd kompilatora C3112 | "interface": interfejs można zadeklarować tylko w zakresie globalnym lub przestrzeni nazw |
| Błąd kompilatora C3113 | "interfejs/wyliczenie" nie może być szablonem/rodzajem |
| Błąd kompilatora C3114 | "identyfikator": nieprawidłowy nazwany argument atrybutu |
| Błąd kompilatora C3115 | "attribute": ten atrybut nie jest dozwolony w konstrukcji |
| Błąd kompilatora C3116 | "specyfikator": nieprawidłowa klasa magazynu dla metody interfejsu |
| Błąd kompilatora C3117 | "interface": interfejs może mieć tylko jedną klasę bazową |
| Błąd kompilatora C3118 | "interface": interfejsy nie obsługują dziedziczenia wirtualnego |
| Błąd kompilatora C3119 | alignas(void) jest niedozwolona |
| Błąd kompilatora C3120 | "identifier": metody interfejsu nie mogą przyjmować listy argumentów zmiennych |
| Błąd kompilatora C3121 | nie można zmienić identyfikatora GUID klasy "class" |
| Błąd kompilatora C3122 | "interface": interfejs ogólny WinRT nie może mieć identyfikatora GUID |
| Błąd kompilatora C3123 | Interfejs ogólny WinRT nie może mieć ograniczeń |
| Błąd kompilatora C3124 | "podpisany znak" nie jest prawidłowym typem danych WinRT. Zamiast tego użyj znaku "bez znaku", "wchar_t" lub "podpisane krótkie". |
| Błąd kompilatora C3125 | "type": typ nie może bezpośrednio lub pośrednio pochodzić z "Platform::Exception" |
| Błąd kompilatora C3126 | program nie może zdefiniować unii "union" wewnątrz typu "type" zarządzanego/WinRT |
| Błąd kompilatora C3127 | "type": cecha " cecha" może być używana tylko w klasie ref WinRT |
| Błąd kompilatora C3128 | "typ" nie ma tabeli wirtualnej wprowadzonej przez "typ" |
| Błąd kompilatora C3129 | "type": __default_vptr_for_base można używać tylko na lokalnie zdefiniowanych typach polimorficznych i bazach |
| Błąd kompilatora C3130 | Wewnętrzny błąd kompilatora: nie można zapisać wprowadzonego bloku kodu do pliku PDB |
| Błąd kompilatora C3131 | projekt musi mieć atrybut "module" z właściwością "name" |
| Błąd kompilatora C3132 | "parametr": tablice parametrów można stosować tylko do formalnego argumentu typu "tablica zarządzana jednowymiarowa/Tablica WinRT" |
| Błąd kompilatora C3133 | Nie można zastosować atrybutów do wariang języka C++ |
| Błąd kompilatora C3134 | "value": wartość argumentu atrybutu "argument" nie ma prawidłowego typu "type" |
| Błąd kompilatora C3135 | "identifier": właściwość nie może mieć typu "const" lub "volatile" |
| Błąd kompilatora C3136 | "interface": interfejs COM może dziedziczyć tylko z innego interfejsu COM, "interface" nie jest interfejsem COM |
| Błąd kompilatora C3137 | "identifier": nie można zainicjować właściwości |
| Błąd kompilatora C3138 | "identifier": interfejs "attribute" musi dziedziczyć z interfejsu IDispatch lub z interfejsu dziedziczonego z interfejsu IDispatch |
| Błąd kompilatora C3139 | "type": nie można wyeksportować funkcji UDT bez elementów członkowskich |
| Błąd kompilatora C3140 | nie może mieć wielu atrybutów "module" w tej samej lekcji kompilacji |
| Błąd kompilatora C3141 | "interface": interfejsy obsługują tylko dziedziczenie publiczne |
| Błąd kompilatora C3142 | "właściwość": nie można pobrać adresu właściwości |
| Błąd kompilatora C3143 | "argument": argument atrybutu nie może mieć wielu wartości |
| Błąd kompilatora C3144 | "attribute": atrybut wymaga jawnych argumentów, argument "argument" jest nienazwany |
| Błąd kompilatora C3145 | "identyfikator": zmienna globalna lub statyczna może nie mieć typu "type" zarządzanego/WinRT |
| Błąd kompilatora C3146 | Nieaktualne. |
| Błąd kompilatora C3147 | Nieaktualne. |
| Błąd kompilatora C3148 | Nieaktualne. |
| Błąd kompilatora C3149 | "type": nie można używać tego typu tutaj bez tokenu najwyższego poziomu |
| Błąd kompilatora C3150 | "construct": "attribute" można stosować tylko do klasy, struktury, interfejsu, tablicy lub wskaźnika |
| Błąd kompilatora C3151 | Nieaktualne. |
| Błąd kompilatora C3152 | "function": słowo kluczowe można stosować tylko do klasy, struktury lub wirtualnej funkcji składowej |
| Błąd kompilatora C3153 | "interface": nie można utworzyć wystąpienia interfejsu |
| Błąd kompilatora C3154 | Oczekiwano wartości "", przed wielokropek. Wielokropek rozdzielony przecinkami nie jest obsługiwany w funkcjach tablicy parametrów. |
| Błąd kompilatora C3155 | atrybuty nie są dozwolone w indeksatorze właściwości |
| Błąd kompilatora C3156 | "klasa": nie można mieć lokalnej definicji typu zarządzanego/WinRT |
| Błąd kompilatora C3157 | Atrybut ParamArray można zastosować tylko do ostatniego parametru |
| Błąd kompilatora C3158 | "function": słowo kluczowe można stosować tylko do wirtualnej funkcji składowej |
| Błąd kompilatora C3159 | "identifier": nie można zadeklarować tablicy wskaźników do typu wartości |
| Błąd kompilatora C3160 | "type": składowa danych klasy zarządzanej/WinRT nie może mieć tego typu |
| Błąd kompilatora C3161 | "interface": zagnieżdżanie klasy, struktury lub interfejsu w interfejsie jest niedozwolone; zagnieżdżanie interfejsu w klasie lub struktury jest nielegalne |
| Błąd kompilatora C3162 | "type": typ odwołania, który ma destruktora, nie może być używany jako typ elementu członkowskiego danych statycznych "członek" |
| Błąd kompilatora C3163 | "class": atrybuty niespójne z poprzednią deklaracją |
| Błąd kompilatora C3164 | Nieaktualne. |
| Błąd kompilatora C3165 | "value": nie można przekonwertować na wartość całkowitą lub zmiennoprzecinkową |
| Błąd kompilatora C3166 | Nieaktualne. "type": składowa danych klasy zarządzanej/WinRT nie może mieć typu "pointer_type do wnętrza managed_pointer_type" |
| Błąd kompilatora C3167 | Nie można zainicjować programu .NET Framework: upewnij się, że jest zainstalowany |
| Błąd kompilatora C3168 | "type": niedozwolony typ bazowy dla wyliczenia |
| Błąd kompilatora C3169 | "type": nie można wyłudić typu "auto" z "type" |
| Błąd kompilatora C3170 | program nie może mieć różnych identyfikatorów modułów w projekcie |
| Błąd kompilatora C3171 | "module": nie można określić różnych atrybutów modułu w projekcie |
| Błąd kompilatora C3172 | "identyfikator": nie można określić różnych atrybutów idl_module w projekcie |
| Błąd kompilatora C3173 | niezgodność wersji w scalaniu idl |
| Błąd kompilatora C3174 | nie określono atrybutu modułu |
| Błąd kompilatora C3175 | "function": nie można wywołać metody typu zarządzanego z funkcji niezarządzanej "function" |
| Błąd kompilatora C3176 | "type": nie można zadeklarować typu wartości lokalnej |
| Błąd kompilatora C3177 | Nie można mieć funkcji konwersji do typu zawierającego "typ" (przestarzałe w programie Visual Studio 2022). |
| Błąd kompilatora C3178 | "type": nie można użyć narzędzia ParamArray w funkcji z argumentami domyślnymi (przestarzałe w programie Visual Studio 2022). |
| Błąd kompilatora C3179 | nienazwany typ zarządzany/WinRT jest niedozwolony |
| Błąd kompilatora C3180 | "type": nazwa przekracza limit metadanych znaków "number" |
| Błąd kompilatora C3181 | "type": nieprawidłowy operand dla operatora |
| Błąd kompilatora C3182 | "type": element członkowski korzystający z deklaracji lub deklaracji dostępu jest niedozwolony w typie zarządzanym/WinRT |
| Błąd kompilatora C3183 | program nie może zdefiniować nienazwanych klas, struktur lub unii wewnątrz typu zarządzanego/WinRT "class" |
| Błąd kompilatora C3184 | Nieaktualne. |
| Błąd kompilatora C3185 | "typeid": używany w typie zarządzanym/WinRT "type", zamiast tego użyj operatora |
| Błąd kompilatora C3186 | Nieaktualne. |
| Błąd kompilatora C3187 | "identifier": jest dostępny tylko w treści funkcji |
| Błąd kompilatora C3188 | Nieaktualne. |
| Błąd kompilatora C3189 | "typeid<deklarator>": ta składnia nie jest już obsługiwana, użyj::typeid zamiast (przestarzałe w programie Visual Studio 2022). |
| Błąd kompilatora C3190 | Deklarator z podanymi argumentami szablonu nie jest jawnym wystąpieniem żadnej funkcji składowej typu |
| Błąd kompilatora C3191 | Nieaktualne. |
| Błąd kompilatora C3192 | błąd składni: '^' nie jest operatorem prefiksu (czy oznaczasz '*'?) |
| Błąd kompilatora C3193 | "construct": wymaga opcji wiersza polecenia "/clr" lub "/ZW" |
| Błąd kompilatora C3194 | "type": typ-wartości nie może mieć operatora przypisania |
| Błąd kompilatora C3195 | "słowo kluczowe": jest zastrzeżone i nie może być używane jako element członkowski klasy ref lub typu wartości. Operatory CLR/WinRT muszą być zdefiniowane przy użyciu słowa kluczowego "operator" |
| Błąd kompilatora C3196 | "identyfikator": używany więcej niż raz |
| Błąd kompilatora C3197 | 'słowo kluczowe': można używać tylko w definicjach |
| Błąd kompilatora C3198 | nieprawidłowe użycie pragma zmiennoprzecinkowych: fenv_access pragma działa tylko w trybie precyzyjnym |
| Błąd kompilatora C3199 | nieprawidłowe użycie pragmatów zmiennoprzecinkowych: wyjątki nie są obsługiwane w trybie nieokreślonym |
Zobacz też
Błędy i ostrzeżenia kompilatora C/C++ i narzędzi kompilacji
Błędy kompilatora C2000 — C3999, C7000 – C7999