Udostępnij za pomocą


Błędy kompilatora — od C3100 do C3199

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