Udostępnij za pośrednictwem


Błędy kompilatora — od C3300 do C3399

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 C3300 "symbol": nieprawidłowy format dla formatu IDL "value"
Błąd kompilatora C3301 "coclass": coclass nie może być interfejsem "symbol"
Błąd kompilatora C3302 "identyfikator": identyfikator ma więcej niż znaki liczbowe
Błąd kompilatora C3303 "attribute": atrybut może być używany tylko w typie
Błąd kompilatora C3304 Nieaktualne.
Błąd kompilatora C3305 Nieaktualne.
Błąd kompilatora C3306 "template": nienazwany szablon klasy/rodzaj nie jest dozwolony
Błąd kompilatora C3307 "module": nie można utworzyć modułu IDL
Błąd kompilatora C3308 "function": bezpośrednie wywołanie za pośrednictwem importowanej klasy nie jest obsługiwane
Błąd kompilatora C3309 "słowo kluczowe makra/": nazwa modułu nie może być makrem ani słowem kluczowym
Błąd kompilatora C3310 "identifier": konflikt nazwy modułu
Błąd kompilatora C3311 atrybut modułu musi być zdefiniowany w zakresie globalnym
Błąd kompilatora C3312 nie można odnaleźć funkcji "identifier" dla typu "type"
Błąd kompilatora C3313 "identifier": zmienna nie może mieć typu "type"
Błąd kompilatora C3314 "symbol": nie jest obsługiwanym typem modułu IDL
Błąd kompilatora C3315 "function": musi być funkcją składową
Błąd kompilatora C3316 "type": tablica nieznanego rozmiaru nie może być używana w zakresie dla instrukcji
Błąd kompilatora C3317 "identifier": funkcji przeciążenia nie można użyć jako wyrażenia w zakresie dla instrukcji
Błąd kompilatora C33181 "type": tablica nie może mieć typu elementu zawierającego element "auto"
Błąd kompilatora C3319 Nieaktualne.
Błąd kompilatora C3320 "type": typ nie może mieć takiej samej nazwy jak właściwość "name" modułu
Błąd kompilatora C3321 lista inicjatorów jest nieoczekiwana w tym kontekście
Błąd kompilatora C3322 "property": nie jest prawidłową właściwością atrybutu "attribute"
Błąd kompilatora C3323 Wyrażenia "alignas" i "__declspec(align)" nie są dozwolone w deklaracjach funkcji
Błąd kompilatora C3324 "property": właściwość występuje więcej niż raz w atrybucie "attribute"
Błąd kompilatora C3325 "attribute": atrybut ma zbyt wiele argumentów
Błąd kompilatora C3326 "value": nie jest prawidłową wartością właściwości "property" atrybutu "attribute"
Błąd kompilatora C3327 "właściwość": musi określać wartość właściwości atrybutu "attribute"
Błąd kompilatora C3328 "attribute": atrybut nie ma wystarczającej liczby argumentów
Błąd kompilatora C3329 błąd składni: oczekiwany "token1" nie "token2"
Błąd kompilatora C3330 " function": funkcja nie może zwrócić tablicy "type"
Błąd kompilatora C3331 "identifier": atrybuty parametrów są dozwolone tylko w interfejsach COM i coclasses
Błąd kompilatora C3332 "property": gramatyka niespójna, właściwość "property" jest wymagana i ma wartość domyślną
Błąd kompilatora C3333 "biblioteka": nie można #import uszkodzonej biblioteki typów
Błąd kompilatora C3334 program nie może #import uszkodzonej biblioteki typów
Błąd kompilatora C3335 "identifier": Może istnieć co najwyżej jeden interfejs domyślny dla coclass "class"
Błąd kompilatora C3336 Ta operacja musi być wykonywana w zakresie klasy
Błąd kompilatora C3337 "identifier": defaultvtable musi być źródłem zdarzeń dla coclass "class"
Błąd kompilatora C3338 "identifier": Może istnieć co najwyżej jeden interfejs domyślny, który jest również źródłem zdarzeń dla coclass "class"
Błąd kompilatora C3339 Parametr szablonu wymaga "class" lub "typename" po liście parametrów
Błąd kompilatora C3340 "identifier": interfejs nie może być zarówno "ograniczony" jak i "default" w coclass "class"
Błąd kompilatora C3341 "interface": interfejs domyślny musi być "podwójny" lub "niestandardowy"
Błąd kompilatora C3342 "identifier": niejednoznaczny atrybut
Błąd kompilatora C3343 'class::name': identyfikator atrybutu ma zbyt wiele znaków
Błąd kompilatora C3344 nie można zdefiniować jawnej specjalizacji ani częściowej specjalizacji "symbolu"
Błąd kompilatora C3345 "name": nieprawidłowy identyfikator nazwy modułu
Błąd kompilatora C3346 wyeksportowana deklaracja w zakresie przestrzeni nazw
Błąd kompilatora C3347 "argument": argument wymagany nie jest określony w atrybucie attribute-name
Błąd kompilatora C3348 wyeksportowane szablony nie są częścią bieżących standardów języka C++
Błąd kompilatora C3349 "class::member": atrybut multiemisji został już zaimplementowany przez dostawcę nazwy dostawcy
Błąd kompilatora C3350 "function": konstruktor delegata oczekuje argumentów liczbowych
Błąd kompilatora C3351 "function": jeśli przekazujesz wystąpienie obiektu NULL do konstruktora delegata, musisz również przekazać adres statycznej funkcji składowej
Błąd kompilatora C3352 "function": określona funkcja nie jest zgodna z typem delegata "type"
Błąd kompilatora C3353 "identyfikator": delegat można utworzyć tylko na podstawie funkcji globalnej lub funkcji składowej typu zarządzanego/WinRT
Błąd kompilatora C3354 "identifier": funkcja użyta do utworzenia delegata nie może mieć zwracanego typu "type"
Błąd kompilatora C3355 "class::member": atrybut multiemisji nasłuchuje dostawcy "provider1", ale jest implementowany przez dostawcę "provider2"
Błąd kompilatora C3356 "identyfikator": nie można wywołać atrybutu multiemisji z w pełni kwalifikowaną nazwą
Błąd kompilatora C3357 "attribute": atrybut jest niejednoznaczny, musi używać w pełni kwalifikowanej nazwy
Błąd kompilatora C3358 "symbol": nie znaleziono symbolu
Błąd kompilatora C3359 "specjalizacja": nie można specjalizować szablonu
Błąd kompilatora C3360 "string": nie można utworzyć nazwy
Błąd kompilatora C3361 nie ma kontekstu, w którym należy podjąć działania
Błąd kompilatora C3362 'class::member': atrybut multiemisji nie został zaimplementowany
Błąd kompilatora C3363 "identifier": "typeid" można zastosować tylko do typu
Błąd kompilatora C3364 ' function': nieprawidłowy argument dla konstruktora delegata; obiekt docelowy delegata musi być wskaźnikiem do funkcji składowej
Błąd kompilatora C3365 operator "operator": różne operandy typu "type" i "type"
Błąd kompilatora C3366 "member": statyczne składowe danych typów zarządzanych/WinRT muszą być zdefiniowane w definicji klasy
Błąd kompilatora C3367 " function": nie można użyć funkcji statycznej do utworzenia delegata bez ruchu przychodzącego
Błąd kompilatora C3368 "deklarator": nieprawidłowa konwencja wywoływania dla języka IDL
Błąd kompilatora C3369 "module": idl_module już zdefiniowane
Błąd kompilatora C3370 "module": idl_module jeszcze nie zdefiniowano
Błąd kompilatora C3371 "idl_module": w tym miejscu dozwolona jest tylko właściwość "name"
Błąd kompilatora C3372 musi określać co najmniej 1 interfejs dla atrybutu "attribute" w coclass
Błąd kompilatora C3373 atrybut "attribute" nie przyjmuje żadnych argumentów z wyjątkiem coclass
Błąd kompilatora C3374 nie może podjąć adresu " funkcji", chyba że utworzenie wystąpienia delegata
Błąd kompilatora C3375 "function": niejednoznaczna funkcja delegata
Błąd kompilatora C3376 "template": dozwolone są tylko statyczne szablony składowych danych
Błąd kompilatora C3377 Wyrażenie "decltype(auto)" nie jest dozwolone w nowym wyrażeniu (przestarzałe w programie Visual Studio 2022).
Błąd kompilatora C3378 deklarację można eksportować tylko z jednostki interfejsu modułu
Błąd kompilatora C3379 "klasa": klasa zagnieżdżona nie może mieć specyfikatora dostępu do zestawu w ramach jego deklaracji
Błąd kompilatora C3380 "specyfikator": nieprawidłowy specyfikator dostępu do zestawu — dozwolone są tylko "publiczne" lub "prywatne"
Błąd kompilatora C3381 "specyfikator": specyfikatory dostępu do zestawów są dostępne tylko w kodzie skompilowanym za pomocą /clr opcji
Błąd kompilatora C3382 Opcja "sizeof" nie jest obsługiwana w przypadku /clr:safe
Błąd kompilatora C3383 Operator new nie jest obsługiwany w przypadku /clr:safe
Błąd kompilatora C3384 "type": ograniczenie wartości i ograniczenie ref wykluczają się wzajemnie
Błąd kompilatora C3385 " function": funkcja, która ma atrybut niestandardowy DllImport, nie może zwrócić wystąpienia klasy
Błąd kompilatora C3386 "type": nie można zastosować __declspec(dllexport)/__declspec(dllimport) do typu zarządzanego/WinRT
Błąd kompilatora C3387 "member": __declspec(dllexport)/__declspec(dllimport) nie można zastosować do elementu członkowskiego typu zarządzanego/WinRT
Błąd kompilatora C3388 "token": niedozwolone jako ograniczenie, przy założeniu, że "wartość", aby kontynuować analizowanie
Błąd kompilatora C3389 __declspec(specyfikator) nie może być używany z /clr:pure lub /clr:safe
Błąd kompilatora C3390 "type": nieprawidłowy argument typu dla parametru ogólnego "parametr" ogólnego "generic_type", musi być typem odwołania
Błąd kompilatora C3391 "type": nieprawidłowy argument typu dla parametru ogólnego "parametr" ogólnego "generic_type", musi być typem wartości innej niż null
Błąd kompilatora C3392 "type": nieprawidłowy argument typu dla ogólnego parametru "parametr" ogólnego "generic_type", musi mieć publiczny konstruktor bez parametrów
Błąd kompilatora C3393 błąd składniowy w klauzuli ograniczenia: "identyfikator" nie jest typem
Błąd kompilatora C3394 błąd składniowy w klauzuli ograniczenia: znaleziono "symbol" oczekiwany typ
Błąd kompilatora C3395 ' function': nie można zastosować __declspec(dllexport) do funkcji z konwencją wywoływania __clrcall
Błąd kompilatora C3396 ", klasa.member": atrybut niestandardowy nie został znaleziony w przestrzeni nazw
Błąd kompilatora C3397 Inicjowanie agregacji nie jest dozwolone w argumentach domyślnych
Błąd kompilatora C3398 "operator": nie można przekonwertować z "type" na "type". Wyrażenie źródłowe musi być symbolem funkcji
Błąd kompilatora C3399 "type": nie można podać argumentów podczas tworzenia wystąpienia parametru ogólnego

1-Nie emitowane już w programie Visual Studio 2022 w wersji 17.11

Zobacz też

Błędy i ostrzeżenia kompilatora C/C++ i narzędzi kompilacji
Błędy kompilatora C2000 — C3999, C7000 – C7999