Uwaga
Dostęp do tej strony wymaga autoryzacji. Może 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 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