Contacte

Semnificația erorii fatale. Eroare fatală în AutoCAD Unhandled e0434352h Excepție - soluții. Context: ceea ce este opțional

Când lucrați în AutoCAD, apare eroarea de excepție Unhandled e0434352h - nu este ușor de înțeles motivele, a căror apariție nu este ușoară. Eroarea apare la deschiderea imaginilor, a desenelor, precum și atunci când lucrați în opțiunile AutoCAD. Din engleză, eroarea se traduce prin - „Excepție e0434352 care nu poate fi gestionată”... Există mai multe opțiuni pentru a o repara.

Pentru a verifica dacă software-ul antivirus interferează cu funcționarea programului, trebuie să mergeți la setările „anti-virus” și să îl opriți pentru un timp, lansând AutoCAD din nou și efectuând aceleași acțiuni care au cauzat eroarea. În acest caz, trebuie să dezactivați nu numai programele antivirus pe care le-ați descărcat separat, ci și software-ul antivirus încorporat.

Următorul pas este dezinstalarea platformei „.NET Framework”. Pentru aceasta:

  1. În Windows 7, deschideți meniul Start. În el, selectați „Panou de control”. Apoi trebuie să deschideți „Adăugați sau eliminați programe”. În lista care se deschide, trebuie să ștergeți toate liniile care au „.NET Framework” în nume.
  2. Descărcați din nou pachetul .NET Framework de pe site-ul oficial Microsoft și instalați-l, în funcție de versiunea de Windows instalată pe computer.
  3. Aici, în lista de programe, găsiți AutoCAD și faceți clic pe dezinstalare.
  4. Reinstalați AutoCAD.

Cauza erorii de excepție Unhandled e0434352h în adaptorul video

Când lucrați cu AutoCAD, computerul trebuie să funcționeze cu grafică 3D, iar acest lucru necesită un adaptor grafic destul de puternic. Dacă computerul dvs. a fost achiziționat cu câțiva ani în urmă, este foarte posibil ca acesta să nu îndeplinească parametrii necesari pentru a opera programul. Pentru a remedia situația, puteți încerca:


Cauzele necontrolate e0434352h Excepția care apare în fișierul de registry

Dacă eroarea apare în timp ce deschideți fila Fișier în AutoCAD, atunci fișierul problematic din biblioteca de linkuri dinamice Microsoft (dll) este cauza. Pentru a rezolva această problemă:

  1. Deschideți „Editorul de registru” făcând clic dreapta pe pictograma „Computerul meu”.
  2. Apoi, accesați secțiunea HKEY_CURRENT_USER / Software / Autodesk / AutoCAD / R18.0 / ACAD-8000: 409 / WeServices / CommunicationCenter.
  3. Schimbați valoarea cheii LastUpdateTimeHiWord la 8 zerouri.
  4. Schimbați cheia similară LastUpdateTimeLoWord la aceeași valoare.
  5. Reporniți computerul.

RAM insuficientă pentru a rula AutoCAD

Cu setările standard ale computerului (dacă nimeni nu le-a schimbat), aplicației i se alocă o anumită cantitate de RAM pentru a funcționa în sistem. 2 GB este limita generală pentru sistemul de operare cu arhitectură pe 32 de biți. Dacă această linie este depășită, Windows iese automat din programele care rulează. Prin urmare, atunci când lucrați cu un program, este necesar, dacă este posibil, să nu deschideți în paralel niciun program care poate ocupa o cantitate mare de memorie virtuală.

Motivul este că serviciul de semnătură digitală nu funcționează corect

Eroarea de excepție e0434352h netratată apare atunci când se solicită semnarea digitală a unei aplicații. Pentru a dezactiva această funcție pentru a preveni apariția erorii în viitor, trebuie să:

  1. Accesați meniul „Start”, apoi faceți clic pe „Run” și în fereastră tastați acsignopt.
  2. În fereastra „Parametrii de verificare a semnăturii digitale” care se deschide, debifați caseta „Verificați semnăturile digitale”.
  3. După acești pași, reporniți computerul.

In contact cu

O eroare fatală poate apărea la pornirea AutoCAD. Acesta blochează începerea lucrărilor și nu puteți utiliza programul pentru a crea desene.

În acest articol, ne vom ocupa de cauzele apariției sale și vom sugera modalități de a elimina această eroare.

Eroare fatală de acces

Dacă, la pornirea AutoCAD, vedeți o astfel de fereastră așa cum se arată în captură de ecran, trebuie să rulați programul ca administrator dacă lucrați sub un cont de utilizator fără drepturi de administrator.

Faceți clic dreapta pe comanda rapidă a programului și faceți clic pe „Run ca administrator”.

Eroare fatală la blocarea fișierelor de sistem

Eroarea fatală poate arăta diferit.

Dacă vedeți această fereastră în fața dvs., înseamnă că instalarea programului s-a întâmplat incorect sau antivirusul a blocat fișierele de sistem.

Există mai multe modalități de a rezolva această problemă.

1. Ștergeți folderele aflate la: C: \ Users \ USRNAME \ AppData \ Roaming \ Autodesk și C: \ Users \ USRNAME \ AppData \ Local \ Autodesk. Apoi reinstalați programul.

2. Apăsați Win + R și tastați „acsignopt” în linia de comandă. În fereastra care se deschide, debifați caseta de selectare „Verificați semnăturile digitale și afișați pictograme speciale”. Cert este că serviciul de semnătură digitală poate bloca instalarea programului.

3. Apăsați Win + R și tastați „regedit” în linia de comandă.

Găsiți filiala HKEY_CURRENT_USER \ Software \ Autodesk \ AutoCAD \ R21.0 \ ACAD-0001: 419 \ WebServices \ CommunicationCenter.

Numele folderelor „R21.0” și „ACAD-0001: 419” pot diferi în versiunea dvs. Nu există nicio diferență fundamentală în conținut, alegeți folderul care apare în registry (de exemplu, R19.0, nu R21.0).

Selectați fișierul „LastUpdateTimeHiWord” și, apelând meniul contextual, faceți clic pe „Schimbare”.

În câmpul „valoare”, introduceți opt zerouri (ca în captura de ecran).

Faceți același lucru pentru fișierul LastUpdateTimeLoWord.

Alte erori AutoCAD și cum să le remediați

Pe site-ul nostru web puteți găsi o soluție la alte erori comune asociate cu lucrul în AutoCAD.

Eroare 1606 în AutoCAD

Eroarea 1606 apare în timpul instalării programului. Eliminarea acestuia este asociată cu efectuarea de modificări în registru.

Eroare 1406 în AutoCAD

Această problemă apare și în timpul instalării. Indică o eroare la accesarea fișierelor de instalare.

Eroare la copierea în clipboard în AutoCAD

În unele cazuri, AutoCAD nu poate copia obiecte. Soluția la această problemă este descrisă în articol.

Am analizat eliminarea unei erori fatale în AutoCAD. Ai propriul tău mod de a trata aceste dureri de cap? Vă rugăm să le împărtășiți în comentarii.

Acest articol va descrie mai multe moduri de a rezolva problema legată de programul AutoCAD.

Vom vorbi despre erorile care apar la pornirea autocad-ului, la salvarea unui desen sau chiar la încercarea de a tipări un document pe o imprimantă conectată în rețea.

Și anume, despre o eroare care duce la o închidere de urgență a programului:

Eroare fatală netratată excepția e06d7363h la fd76bccdh

EROARE FATALĂ: Excepție e0434f4dh netratată la 7c81eb33h

Excepție netratată la 7c81eb33h

Arată puțin diferit, dar se enervează la fel.

Aceste mesaje de eroare indică faptul că programul a fost corupt în timpul instalării. De exemplu, în timpul instalării, unele fișiere au fost blocate de antivirus, Windows Defender sau serviciul de verificare a semnăturii digitale. Prin urmare, este recomandat să dezactivați antivirusul la instalarea programului și să închideți toate celelalte aplicații care pot interfera cu procesul de instalare.

Și acum să trecem la rezolvarea efectivă a problemei.

Metoda 1

În primul caz, luați în considerare eroarea care apare la imprimarea unui document pe o imprimantă de rețea:

Eroare fatală netratată e06d7363hexception la fd76bccdh

Pentru a scăpa de el, puteți încerca să ștergeți folderele:

C: \ Utilizatori \ USRNAME \ AppData \ Roaming \ Autodesk și C: \ Utilizatori \ USRNAME \ AppData \ Local \ Autodesk

Și reinstalați AutoCAD.

Metoda 2

Următorul lucru care poate ajuta la remedierea acestei erori este reinstalarea software-ului:

NetFramework 1.1

Mai bine, eliminați toate versiunile NetFramework din sistem și rulați din nou instalarea AutoCAD. În timpul instalării, programul de instalare va reinstala NetFramework într-un autocad mai potrivit.

Metoda 3

La începutul articolului, sa spus deja că în timpul instalării, serviciul de verificare a semnăturii digitale poate interfera cu instalatorul. Deci va trebui să-l dezactivați.

Pentru aceasta:

  1. Deschideți caseta de dialog Run, puteți rula fie de la început, fie apăsând comanda rapidă de la tastatură Câștig + R.
  2. Introdu comanda acsignoptși apăsați tasta Enter.

3. În fereastra „Setări de verificare a semnăturii digitale” care apare, debifați caseta de lângă mesajul „Verificați semnăturile digitale și afișați pictograme speciale”.

4. Faceți clic pe OK pentru a închide fereastra. Dezinstalați și reinstalați complet AutoCAD.

Verificați funcționalitatea. Dacă eroarea apare în continuare, treceți la următoarea metodă.

Metoda 4

În a patra metodă, va trebui să modificați câteva valori în registru.

  1. Porniți Registry Editor.
  2. Mergeți pe următoarea cale: HKEY_CURRENT_USER \ Software \ Autodesk \ AutoCAD \ R18.0 \ ACAD-8000: 409 \ WebServices \ CommunicationCenter

Notă! Calea poate fi ușor diferită, și anume valoarea R18,0 poate fi diferit, în funcție de versiunea autocad-ului. De exemplu R19.0, nu este nimic în neregulă cu asta, nu ezitați să treceți mai departe.

4. Schimbați valorile pentru ambele chei la 00000000 (opt zerouri).

Notă! Pentru a edita registrul, aveți nevoie de drepturi de administrator.

"Fatal" - cum e? Adeseori auziți acest cuvânt în contexte diferite, așa că sensul său nu este întotdeauna clar. Astăzi vom clarifica semnificația adverbului și câteva fraze cu acesta.

„Fatum” este destinul

Într-adevăr, din latinescul „soartă” este soartă. Prin urmare, puteți stabili cu ușurință ceea ce este fatal este:

  1. Ceva misterios, care definește fatal viața unei persoane.
  2. Ceea ce presupune tragedia este posibil moartea.

Dar nu vă fie teamă, de cele mai multe ori încă nu vorbim despre moarte, ci, mai degrabă, despre predestinare. De exemplu, puteți auzi de la comentatorii meciurilor din sporturi de echipă: „Greșeala acestui portar s-a dovedit a fi fatală pentru echipă”. La urma urmei, publicul înțelege: portarul nu a devenit cauza unei boli fatale pentru toți colegii săi și nu au murit după meci. În acest caz, greșeala portarului este fatală, deoarece a predeterminat rezultatul meciului și s-a dovedit a fi fatală. „Fatal” este ceva care nu poate avea un final fericit.

Fatalism și voluntarism

În mod surprinzător, ceea ce este asociat cu soarta nu este înzestrat cu un sens pozitiv de către o persoană.

Există sisteme care se exclud reciproc - fatalism și voluntarism. Cu fatalism, totul este clar - aceasta este o viziune asupra lumii care crede: nu există libertate în lume și totul este supus unui singur plan al destinului. Mai mult, oricum ar fi, un fatalist nu este neapărat un pesimist. Aceștia sunt oameni care cred în soartă, cred că cu siguranță vor avea noroc, măcar unii dintre ei. Un alt lucru este că rareori au noroc, dar asta nu este important. În cele mai multe cazuri, fatalismul implică o cantitate suficientă de pesimism și dezamăgire. Oamenii își amintesc de obicei fatalismul atunci când o persoană se rostogolește pe un plan înclinat.

Și cum rămâne cu „voluntarism”? Termenul este familiar spectatorilor sovietici și ruși din filmul „Prizonierul Caucazului” de L. Gaidai. Dar puțini oameni știu ce înseamnă. Iar conceptul presupune următoarea convingere: principala forță motrice din lume este libertatea omului sau a lui Dumnezeu (sau a ceea ce Îl înlocuiește). Și aș vrea să spun că voluntarismul, spre deosebire de fatalism, este optimist, dar amintindu-ne de gânditorii care au aderat la această doctrină (F. Nietzsche, A. Schopenhauer), cumva limbajul nu se întoarce. Principala diferență dintre fatalism și voluntarism constă în următoarele: unii cred că nu există libertate, în timp ce alții că nu există altceva decât libertate. Într-un fel sau altul, „fatal” este că cu siguranță nu se va termina cu nimic bun pentru o persoană.

Martin Eden ca exemplu de soartă tragică

Romanul lui Jack London este o operă eternă, spune povestea bătăliei unei persoane cu soarta și viața. Lucrul rău la această lucrare este că autorul a avut o anumită atitudine ideologică: dragostea este principala forță motrice a lumii. Și în timp ce eroul Londrei credea că Ruth îl iubește, el s-a depășit, s-a dezvoltat. La urma urmei, Martin Eden este o pepită. Dar, de îndată ce personajul principal înțelege că Ruth este un manechin, s-a ofilit imediat. Pentru cei care nu au citit, nu vom dezvălui toate cărțile, dar să spunem: întâlnirea cu Ruth a predeterminat rezultatul fatal (ce înseamnă aceasta este clar din context, iar dacă nu este clar, atunci citiți Jack London) Soarta lui Martin Eden.

Greșeala fatală a autorului

Jack London este un etern autor, adică va fi citit atâta timp cât există limba engleză și oameni care pot traduce din el, dar a făcut și o greșeală care l-a costat scump pe eroul său. Cititorul priceput va înțelege despre ce este vorba. Jack London credea: cel mai important lucru în viață este dragostea, iar atunci când o persoană este lipsită de dragoste, atunci nu are niciun motiv să trăiască. Martin Eden a devenit victima unei asemenea atitudini. Și acest lucru este destul de potrivit pentru definiția „eroare fatală” - acesta este ceea ce a predeterminat soarta eroului, a jucat o glumă crudă cu el. Credința sistemică a lui Jack London în dragoste a devalorizat întreaga luptă a lui Martin Eden pentru dreptul de a fi el însuși.

Această anexă oferă o listă de mesaje de eroare pe care le puteți întâlni în timpul dezvoltării programelor și oferă, de asemenea, o scurtă descriere a pașilor pe care ar trebui să îi urmați pentru a remedia erorile. Următoarea listă vă va spune unde să căutați mesaje de eroare de la diferite componente ale compilatorului Microsoft Quick-C:

Secțiunea de componente Microsoft Quick-C Compiler Secțiunea D.1, „Mesaje de eroare ale compilatorului. Linia de comandă utilizată Secțiunea D.2”, Mesaje de eroare pentru invocarea compilatorului Quick-C pentru linia de comandă. „Runtime Libraries Secțiunea D.3”, Eroare Microsoft C Mesaje și alte situații de rulare „. Runtime. Microsoft Overlay Linker, Secțiunea D.4,” LINK Utility Error Messages. Linker „. Firm Library Manager Secțiunea D.5,” Mesaje de eroare Utilitarul LIB Microsoft Utilitar LIB. „Secțiunea Utilitar de asistență pentru dezvoltare D.6,” Utilitar MAKE Mesaje de eroare MAKE. „ linia de comandă, timpul de rulare sunt listate în această anexă în ordine alfabetică .

Vezi Secțiunea D.1.4 pentru informații despre constrângerile compilatorului și Secțiunea D.3.3 pentru constrângerile de timp de execuție.

D.1 Mesaje de eroare ale compilatorului

Mesajele de eroare primite la blocarea compilatorului SI se încadrează în trei categorii:

1. Mesaje de eroare fatale.

2.Mesaje de eroare de compilare.

3. Mesaje de avertizare.

Mesajele pentru fiecare categorie sunt enumerate mai jos în ordine numerotate, cu o scurtă explicație a fiecărei erori. Pentru a găsi mesajul dorit, mai întâi identificați categoria mesajului, apoi găsiți numărul de eroare corespunzător. Fiecare mesaj generat în Quick-C apare într-o fereastră de eroare; cursorul este poziționat pe linia care provoacă eroarea (a se vedea Secțiunea 7.3.4 pentru detalii). Fiecare mesaj de eroare generat în timpul compilării utilizând o comandă QCL conține numele fișierului și numărul de linie care a cauzat eroarea.

Mesaje de eroare fatale.

Un mesaj de eroare fatală indică o problemă care împiedică compilatorul să execute în continuare. Acest tip de mesaj are următorul format:

nume de fișier (șir): eroare fatală C1xxx: text mesaj După ce compilatorul afișează un mesaj de eroare fatală, se închide fără a crea un fișier obiect sau a verifica erorile ulterioare.

Mesaje de eroare ale compilatorului.

Mesajele de eroare ale compilatorului indică erori reale de software. Aceste mesaje sunt afișate în următorul format:

nume fișier (șir): eroare C2xxx: text mesaj

În acest caz, compilatorul nu creează un fișier obiect pentru fișierul sursă în care compilatorul a întâmpinat erori. Dacă compilatorul întâlnește astfel de erori, încearcă să le repare. Dacă este posibil, continuă procesarea fișierului original și emite mesaje de eroare. Dacă sunt prea multe erori sau sunt prea grave, compilatorul nu mai funcționează.

Mesaje de avertizare.

Mesajele de avertizare au doar scop informativ; nu întrerup procesul de compilare sau de conectare. Aceste mesaje apar în următorul format:

nume fișier (șir): avertisment C4xxx: text mesaj

Puteți utiliza opțiunea / W pentru a controla nivelul mesajelor generate de compilator. Această opțiune este descrisă în Secțiunea 9.3.1.

D.1.1. Mesaje de eroare fatale.

Următoarele mesaje identifică erori fatale. Compilatorul nu poate remedia eroarea fatală; nu mai funcționează după imprimarea unui mesaj de eroare. Număr Mesaj de eroare fatală C1000 „Eroare fatală necunoscută, contactați serviciile tehnice Microsoft.” Compilatorul a întâmpinat o eroare necunoscută. Vă rugăm să informați Microsoft Corporation despre condițiile acestei erori utilizând formularul special de Solicitare asistență pentru produs de pe coperta acestui manual. C1001 „Eroare internă a compilatorului, contactați serviciul tehnic Microsoft”. Compilatorul a întâlnit o nepotrivire internă. Vă rugăm să raportați condițiile pentru această eroare folosind formularul „Solicitare asistență pentru produs” de pe coperta acestui manual. Vă rugăm să includeți în mesaj numele fișierului și numărul rândului care a cauzat eroarea; rețineți că „numele fișierului” se referă la fișierul compilatorului intern, nu la fișierul sursă. C1002 În afara intervalului dinamic. Compilatorul a ieșit din heap. Această situație înseamnă de obicei că programul tău are prea multe nume simbolice și/sau expresii complexe. Pentru a scăpa de această problemă, împărțiți fișierul în mai multe fișiere sursă mai mici sau împărțiți expresiile în subexpresii mai mici. C1003 Contorul de erori a depășit n; compilarea sa oprit. Există prea multe erori în program sau sunt prea grave pentru a fi reparate, compilatorul trebuie să anuleze execuția. C1004 „Sfârșitul neașteptat al fișierului (EOF). Acest mesaj apare dacă nu aveți suficientă memorie pe un dispozitiv de disc standard pentru ca compilatorul să creeze fișierele temporare necesare. Spațiul necesar este de aproximativ 2 ori mai mare decât dimensiunea fișierului original. mesajul poate fi, de asemenea, generat dacă comentariul nu are un delimitator de închidere (* /), sau dacă directivei #if nu are directiva de închidere #endif. C1005 „Linia este prea mare pentru buffer.” O linie în intermediarul compilatorului fișierul depășește bufferul. C1006 „Eroare la scrierea în compilatorul fișierului intermediar”. Compilatorul nu poate crea fișiere intermediare utilizate în procesul de compilare. Următoarele situații conduc de obicei la această eroare: 1. Prea puține fișiere în fișiere = linia numerică a CONFIG Fișier .SYS (compilatorul necesită ca numărul să fie de cel puțin 15) 2. Nu există memorie pe dispozitivul care conține fișierele intermediare ale compilatorului. C1007 „Marcul nerecunoscut” șir „în” opțiunea „” opțiunea șir-în linia de comandă opțiunea nu este o opțiune validă. C1009 „Limitări ale compilatorului, posibil macrocomenzi definite recursiv”. Extinderea unei macrocomenzi depășește memoria disponibilă. Verificați dacă au existat macrocomenzi definite recursiv sau dacă textul extensibil nu este prea mare. C1010 „Limitări ale compilatorului: extensia macro-ului prea mare”. Extinderea macro depășește memoria disponibilă. C1012 „Imbricare nevalidă a parantezei - lipsește” caracter „. Nepotrivirea parantezelor din directiva preprocesorului; „personaj” este fie o paranteză din stânga, fie din dreapta. C1013 „Nu se poate deschide fișierul sursă” nume de fișier „”. Fișierul dat „nume fișier” fie nu există, nu poate fi deschis, fie nu a fost găsit. Asigurați-vă că parametrii de configurare a mediului sunt corecti și că numele rutei corect este specificat pentru fișier. C1014 Prea multe fișiere includ. Imbricarea directivelor #include depășește limita de 10 niveluri. C1015 „Nu se poate deschide fișierul include” numele fișierului „”. Acest fișier fie nu există, nu poate fi deschis, fie nu poate fi găsit. Asigurați-vă că mapările mediului sunt corecte și că ați specificat numele corect de rută pentru acest fișier. C1016 „Directiva #if [n] def necesită un identificator”. Cu directivele #ifdef și #ifndef, trebuie să utilizați un identificator. C1017 Expresie constantă întreagă nevalidă. Expresia din directiva #if trebuie să fie evaluată la o constantă. C1018 „Directiva neașteptată” #elif „”. Apariția directivei #elif este permisă numai în cadrul directivelor #if, #ifdef sau #ifdef. C1019 „Directiva neașteptată” #else „”. Apariția directivei #else este posibilă numai în cadrul directivelor #if, #ifdef sau #ifndef. C1020 „Neașteptat” #endif „directivă” Directiva #endif a apărut fără o directivă corespunzătoare #if, #ifdif sau #ifndef. C1021 „Comandă de preprocesor nevalidă” șir „” Caracterele care urmează semnul (#) formează o directivă de preprocesor nevalidă. C1022 „Directiva așteptată „#endif””. Directiva #if, #ifdef sau #ifndef nu se termină cu directiva #endif. C1026 „Stack overflow, vă rugăm să simplificați programul”. Programul dumneavoastră nu poate fi procesat în continuare, deoarece memoria necesară pentru a „analiza” programul depășește stiva compilatorului. Pentru a rezolva această problemă, simplificați programul. C1027 „Limitări ale compilatorului: structuri de imbricare / amestecuri”. Definițiile structurilor și amestecurilor sunt imbricate de mai mult de 10 ori. C1028 „segmentul este mai mare de 64K” Acest segment conține mai mult de 64 de date „departe”. Un modul nu poate avea mai mult de 64K de date „la distanță”. Pentru a rezolva această problemă, fie împărțiți explicațiile în module separate, reduceți cantitatea totală de date utilizate, fie compilați programul utilizând compilatorul de optimizare Microsoft-C. C1032 „Nu se poate deschide fișierul care conține lista de obiecte” nume de fișier „”. Una dintre următoarele afirmații despre numele fișierului sau numele rutei este validă: 1. Numele dat nu este corect. 2. Fișierul cu numele dat nu poate fi deschis din cauza memoriei insuficiente. 3. Există deja un fișier cu numele dat și atributul numai pentru citire. C1033 „Nu se poate deschide fișierul de ieșire a ansamblului” nume de fișier „”. Una dintre condițiile discutate în descrierea codului de eroare C1032 a făcut imposibilă deschiderea acestui fișier. C1034 „Nu se poate deschide fișierul sursă” numele fișierului „”. Una dintre condițiile discutate în descrierea codului de eroare C1032 a făcut imposibilă deschiderea acestui fișier. C1035 „Expresia este prea complexă, vă rugăm să simplificați.” Compilatorul nu a putut genera cod pentru expresia complexă. Pentru a rezolva această problemă, împărțiți expresia în subexpresii mai simple și compilați din nou. C1036 „Nu se poate deschide fișierul care conține lista originală” nume de fișier „”. Una dintre condițiile discutate în descrierea codului de eroare C1032 a făcut imposibilă deschiderea acestui fișier. C1037 „Nu se poate deschide fișierul obiect” nume de fișier „”. Una dintre condițiile discutate în descrierea codului de eroare C1032 a făcut imposibilă deschiderea acestui fișier. C1039 „Debordare heap irecuperabilă în a treia trecere a compilatorului”: în a treia trecere de optimizare, compilatorul a depășit heap și a ieșit. Încercați să compilați din nou cu Optimizări activate (în mediul de programare Quick-C) sau / Od (pe linia de comandă QCL) sau încercați să separați funcția care conține șirul care a cauzat eroarea. C1040 „EOF neașteptat în fișierul sursă” nume de fișier „”. În timp ce lista un fișier sursă sau un fișier sursă / obiect, compilatorul a întâlnit un sfârșit neașteptat al fișierului. Această eroare a apărut probabil dacă fișierul sursă a fost editat în timpul compilării. C1041 „Nu se poate deschide fișierul compilator intermediar - nu mai mult”. Compilatorul nu poate crea un fișier intermediar utilizat în timpul compilării, deoarece nu mai există numere de fișiere logice. Această eroare poate fi corectată prin schimbarea fișierelor = linia numerică din fișierul CONFIG.SYS pentru a specifica un număr mai mare de fișiere deschise simultan (se recomandă alocarea numărului 20). C1042 „Nu se poate deschide fișierul compilator intermediar - nu există un astfel de fișier sau director.” Compilatorul nu poate crea fișiere intermediare utilizate în timpul compilării, deoarece directorul sau ruta greșit a fost specificat în variabila de mediu de operare TMP. C1043 „Nu se poate deschide fișierul intermediar al compilatorului”. Compilatorul nu poate crea fișiere intermediare utilizate în timpul procesului de compilare. Motivul exact este necunoscut. C1044 „Încărcare spațiu pe disc pentru fișierul intermediar al compilatorului” Din cauza memoriei insuficiente, compilatorul nu poate crea un fișier intermediar utilizat în timpul procesului de compilare. Pentru a remedia această situație, eliberați spațiu pe disc și recompilați. C1045 Debordare în virgulă flotantă. Compilatorul a primit o eroare la atribuirea constantelor aritmetice elementelor în virgulă mobilă, ca în exemplul următor: float fp val = 1.0e100; În acest exemplu, constanta de precizie dublă 1.0e100 depășește valoarea maximă permisă pentru datele în virgulă mobilă. C1047 „Prea multe apariții ale opțiunii „șir””. Această opțiune a fost menționată de prea multe ori. Șirul „șir” conține opțiunea care a cauzat eroarea. C1048 Caracter „necunoscut” „pe” șirul de opțiuni „”. Caracterul nu este o literă validă pentru „șirul de opțiuni”. C1049 „Argument numeric nevalid” șir „”. Era de așteptat un argument numeric în loc de șir. C1050 Numele segmentului de cod este prea mare. În timpul compilării, segmentul de cod a crescut dincolo de 36 de octeți de la 64K. În acest caz, se folosește o umplere de 36 de octeți, deoarece o defecțiune a unor plăci cu microprocesor 80286 poate provoca un comportament imprevizibil al programului dacă, printre alte condiții, dimensiunea segmentului de cod este în 36 de octeți de 64K. C1052 „Prea multe # dacă / # ifdef” s „directive. Programul a depășit numărul maxim de niveluri de imbricare # if / # ifdef. C1053” Alocarea datelor DGROUP depășește 64K. „Au fost alocate mai mult de 64K variabile în segmentul de date standard. Pentru programele cu memorie mică, medie și mare, compilați cu comanda QCL utilizând opțiunea / GT pentru a imbrica elemente în segmente separate C1054 „Limitații compilatorului: imbricarea inițiatorului prea adânc” Limitele inițiale de imbricare ale compilatorului au fost depășite - congestionare. Limita este de la 10 la 15 niveluri, în funcție de combinația de tipuri inițializate. Pentru a rezolva această problemă, pentru a reduce nivelurile de imbricare, simplificați tipul de date inițializate sau, după descriere, atribuiți valoarea inițială în instrucțiuni separate. C1056 „Limitări ale compilatorului: depășire în timpul extinderii macrocomenzii”. Compilatorul și-a depășit tamponul intern în timp ce extindea o macrocomandă. C1057 „EOF neașteptat în extensia macro; (lipsește”) „?)”. Compilatorul a întâlnit sfârșitul fișierului sursă în timp ce asambla argumentele unui apel macro. Acesta este de obicei rezultatul parantezei din dreapta de închidere omise) în apelul macro, ca în exemplul următor: #define print (a) printf (șirul este (, # a)) main () (print (vulpea maro rapidă; ) C1059 "Au fost depășite limitele" din apropierea "zonei dinamice. La plasarea elementelor de date în" lângă "zona dinamică (segment de date standard), compilatorul a ieșit din interval. C1060" Limitele zonei dinamice "departe". au fost depășite. Compilatorul a ieșit din memorie când a plasat elemente de date în regiunea dinamică „departe”. Această eroare apare de obicei în programele din memorie, deoarece tabelul de nume conține prea multe nume. Pentru a remedia această situație, încercați să compilați cu Debug opțiunea este dezactivată sau încercați să includeți mai puține fișiere include. Dacă această metodă nu salvează situația, compilați programul utilizând comanda QCL. C1061 „Limitări ale compilatorului: prea cuibărire adâncă a blocurilor”. Imbricarea blocurilor în acest program depășește capacitățile compilatorului. Pentru a remedia această situație, rescrieți programul astfel încât imbricarea blocurilor să fie mai mică. C1063 „Limitările compilatorului - Depășirea stivei compilatorului”. Programul dumneavoastră este prea complex, deoarece a dus la o supraîncărcare a stivei. Simplificați-vă programul și compilați din nou.

D.1.2. Mesaje de eroare ale compilatorului.

Mesajele enumerate mai jos indică faptul că programul dvs. are erori. Când compilatorul întâlnește una dintre erorile enumerate în această secțiune, programul continuă să fie examinat (dacă este posibil), iar mesajele de eroare rămase continuă să fie tipărite. Cu toate acestea, fișierul obiect nu este construit. Numărul mesajului de eroare al compilatorului C2000 „Eroare nerecunoscută. Contactați serviciile tehnice Microsoft”. Compilatorul nu poate determina tipul de eroare pe care a întâlnit-o. Vă rugăm să raportați starea acestei erori către Microsoft utilizând solicitantul dedicat de asistență pentru produse de pe coperta acestui manual. C2001 „Newline găsit în constant”. Un caracter newline într-o constantă de caractere sau șir nu este utilizat în forma corectă a unei secvențe de escape (/ n). C2002 „Parametrii actuali ai macrocomenzii depășesc limitele de memorie permise.” Argumentele preprocesorului macro depășesc 256 de octeți. ID C2003 Este necesar. Identificatorul pentru verificarea stării din #if nu a fost găsit. C2004 ID obligatoriu. Directiva #if a provocat o eroare de sintaxă. C2005 „Numărul de linie este necesar în directiva #line”. Din directiva #line lipsește numărul de linie specificat. C2006 „Directiva #include necesită un nume de fișier.” Din directiva #include lipsește o specificație de nume de fișier. C2007 „Eroare de sintaxă a directivei #define”. A fost întâlnită o eroare de sintaxă în directiva #define. C2008 "" caracter ": nu este posibil în macrocomenzi". Acest simbol a fost folosit incorect în definiția macro. C2009 „Reutilizarea parametrului formal” identificatorul „macro”. Acest identificator a fost folosit de două ori în lista de parametri formali ai definiției macro. C2010 "" caracterul ": nu este posibil în lista formală". Acest simbol a fost folosit incorect în lista de parametri formali ai unei definiții macro. C2011 "" identificator ": definiții prea mari". Această macrocomandă este mai mare de 256 de octeți. C2012 „Numele care urmează” lipsește<"". В директиве #include не хватает требуемой спецификации имени файла. C2013 "Не хватает знака "> „”. Paranteza unghiulară de închidere (>) lipsește în directiva #include C2014 „O comandă de preprocesor trebuie să înceapă cu primul caracter semnificativ (fără spații albe)”. Caracterele non-spații apar înaintea semnului # în directiva preprocesor pe aceeași linie. C2015 „Prea multe caractere într-o constantă”. O constantă de caracter conține mai mult de un caracter sau a fost folosită o secvență de escape. C2016 „Lipsește o ghilimă simplă de închidere”. Constanta caracterului nu a fost cuprinsă între ghilimele simple. C2017 Secvență de evadare nevalidă. Caracterul sau caracterele care urmează semnului (\) nu au forma corectă pentru o secvență de evadare. C2018 „Personaj necunoscut” Oxcharacter „”. Acest număr hexazecimal nu se potrivește cu caracterul. C2019 „Necesită comandă preprocesor, caracter găsit” caracterul „” Acest caracter urmează semnul (#), dar nu este prima literă a unei directive de preprocesor. C2020 Caracter octal nevalid." Acest caracter nu este o cifră octală validă. C2021 „numărul” este prea mare pentru caracterul „. Numărul „număr” este prea mare pentru a reprezenta caracterul. C2023 Divizarea după Zero. Al doilea operand al diviziunii (/) se evaluează la zero. ceea ce poate duce la rezultate imprevizibile. C2024 Modul 0. Al doilea operand din restul operației (%) este evaluat la zero, ceea ce poate duce la rezultate imprevizibile. C2025 "" identificator ": suprascriind tipul enum / struct / union". Acest identificator a fost deja folosit într-o etichetă de enumerare, structură sau amestec. C2026 "" identificator ": anulează numărul de enumerare". Acest identificator a fost deja folosit într-o constantă de enumerare, fie în același tip de enumerare, fie într-un alt tip de enumerare în aceeași formă. C2028 „Un membru/un amestec trebuie să fie în structură/amestec” Membrii unei structuri sau amestec trebuie descriși în cadrul structurii sau amestecului. Această eroare poate fi cauzată de o descriere a unei enumerații care conține o descriere a unui membru al structurii, ca în exemplul următor: enum a (ianuarie, februarie, int martie; / * descrierea structurii: ** invalid * / ); C2029 "" identificator ": câmpurile de biți sunt permise numai în structuri". Numai structurile pot conține câmpuri de biți. C2030 "" identificator ": înlocuire struct/mix membru". Acest identificator a fost folosit de mai multe ori ca membru al aceleiași structuri/amestec. C2031 "" identificator ": funcția nu poate fi membru al unei structuri sau al unui amestec". Această funcție a fost descrisă ca membru al unei structuri sau al unui amestec. Utilizați un indicator de funcție pentru a corecta această eroare. C2032 "" identificator ": tipul de bază cu cuvinte cheie aproape / departe / imens nu este permis." Un anumit membru sau amestec a fost descris cu cuvintele cheie departe și aproape. C2033 "" identificator ": operatorul indirect (*) nu poate fi aplicat câmpurilor de biți". Acest câmp de biți a fost descris ca un pointer (*), ceea ce nu este permis. C2034 "" identificator ": câmpul de biți prea mic pentru numărul de biți dat". Numărul de biți specificat în descrierile câmpului de biți este mai mare decât% m numărul de biți din baza dată m (n. C2040 "". "Necesită numele structurii sau amestecului." C2041 "Cuvântul cheie 'enum". ' este incorect." Cuvântul cheie "enum" apare în descrierea structurii sau amestecului, sau definiția tipului "enum" a fost formată incorect. C2042 " cuvintele cheie semnate / nesemnate se exclud reciproc. "Atât cele semnate, cât și cele nesemnate. cuvintele cheie au fost utilizate simultan în aceeași descriere, ca în exemplul următor: unsigned signed int i; C2043" Instrucțiune break invalidă. "Instrucțiunea break este permisă numai în interiorul instrucțiunilor do , for, while, sau switch. C2044 "Instrucțiune continue nevalidă. " Declarația continue este permisă numai în interiorul unei instrucțiuni do, for sau while. C2045 "" identificator ": redefiniți eticheta." Această etichetă a apărut înainte de mai multe, decât un operator în aceeași funcție. C2046 Cuvânt cheie nevalid. Cuvântul cheie case poate apărea numai în interiorul unei instrucțiuni switch. C2047 „Cuvânt cheie implicit nevalid”. Cuvântul cheie implicit poate apărea numai în interiorul unei instrucțiuni switch. C2048 „Mai multe implicite”. Declarația switch conține mai mult de o etichetă implicită. C2050 Expresie de comutare nu întreagă. Expresia de comutare nu este întreagă. C2051 „Expresia cazului nu este constantă”. Expresiile caz trebuie să fie constante întregi. C2052 „Expresia caz nu este întreagă”. Expresiile caz trebuie să fie constante întregi. C2054 „Valoarea casei” număr „a fost deja folosită”. Această valoare case a fost deja utilizată într-o instrucțiune switch. C2054 „Necesită semnul” („după identificator” identificatorul „". Contextul necesită paranteze după funcția „identificator". C2055 „Necesită o listă de parametri formali, nu lista de tipuri." În funcție a apărut lista de tipuri de argument. definiție în loc de lista de parametri formali... C2056 Expresie nevalidă. Din cauza erorii anterioare, expresia este invalidă (Eroarea anterioară poate să nu fi cauzat un mesaj de eroare). C2057 Exprimarea constantă necesară. Contextul necesită o exprimare constantă. C2058 Expresia constantă nu întreagă. Contextul necesită o expresie constantă întreagă. C2059 „Eroare de sintaxă: „token””. Indicatorul dat a provocat o eroare de sintaxă. C2060 „Eroare de sintaxă: EOF”. A fost întâlnit un sfârșit neașteptat al fișierului, care a cauzat o eroare de sintaxă. Această eroare poate fi cauzată de paranteza de închidere „)” omisă la sfârșitul programului. C2061 „Eroare de sintaxă: identificator” identificator „. Identificatorul dat a provocat o eroare de sintaxă. C2062 „Tip” tip „nu este necesar”. Acest tip a fost folosit greșit. C2063 "" identificator ": nu este o funcție". Acest identificator nu este declarat ca funcție, dar s-a încercat să-l folosească ca funcție. C2064 „Termenul nu este evaluat în funcție”. A fost făcută o încercare de a apela o funcție folosind o expresie care, atunci când este evaluată, nu oferă un pointer pentru funcție. C2065 "" identificator ": nedefinit". Identificatorul dat este nedefinit. C2066 Conversia în funcție nu este corectă. Obiectul a fost convertit într-un tip de funcție. C2067 „Conversia în tipul matricei este nevalidă”. Obiectul a fost convertit într-un tip de matrice. C2068 Conversie de tip incorectă. Tipul folosit la turnare nu este corect. C2069 „Turnarea de la tipul gol la tipul negol”. Tipul de gol a fost turnat la un alt tip. C2070 Dimensiunea operandului nevalidă. Operandul expresiei sizeof nu este un identificator sau un nume de tip. C2071 "" clasa ": clasa de stocare nevalidă". Această clasă de memorie nu poate fi utilizată într-un astfel de context. C2072 "" identificator ": inițializarea funcției". S-a încercat inițializarea unei funcții. C2073 "" identificator ": nu se poate inițializa matricea în funcție". S-a făcut o încercare de a inițializa această matrice în interiorul unei funcții. O matrice poate fi inițializată numai extern. C2074 „Este interzisă inițializarea structurii sau amestecului în funcție”. S-a făcut o încercare de a inițializa o structură sau un amestec dat în cadrul unei funcții. Structurile și funcțiile pot fi inițializate doar extern. C2075 "" identificator ": inițializarea matricei necesită doar acolade". Acoladele () au fost omise în timpul inițializării matricei. C2076 "" identificator ": inițializarea structurii sau a mixului necesită doar acolade". Acoladele () au fost omise la inițializarea unei structuri sau a unui amestec. C2077 Inițializator fără numere întregi pentru câmpul „identificator”. A fost făcută o încercare de a inițializa un membru al unui câmp de biți de structură cu o valoare care nu este întreagă. C2078 Prea multe inițializatoare. Numărul de inițializatoare depășește numărul de obiecte care sunt inițializate. C2079 „” identificator „- structură sau amestec nedefinit”. Acest identificator a fost descris ca o structură sau un amestec de tip nedefinit. C2082 Redefiniți parametrul formal „identificator”. Parametrul formal al funcției a fost redefinit în corpul funcției. C2083 Identificatorul „matricea” „este deja dimensionat”. Dimensiunea pentru această matrice a fost deja descrisă. C2084 Identificator „funcție” „are deja un corp”. Această funcție a fost deja definită. C2085 "" identificator ": nu este în lista formală de parametri". Acest parametru a fost declarat în definiția funcției pentru un parametru formal inexistent. C2086 "" identificator ": suprascrie". Acest identificator a fost identificat de mai multe ori. C2087 "" identificator ": descriptor lipsă". În definirea unui tablou cu descriptori multipli, valoarea descriptorului a fost omisă pentru o altă dimensiune decât prima, ca în exemplul următor: int func (a) char a; / * invalid * / (...) int func (a) char a; / * corect * / (...) C2088 "Utilizarea de nedefinit" identificator "de enumerare / structura / amestec". Acest identificator se referă la o structură sau un amestec, al cărui tip nu este definit. C2089 „typedef definește o funcție aproape/depărtare”. Folosirea cuvintelor cheie near sau far într-o declarație typedef este incompatibilă cu utilizarea cuvintelor cheie near sau far pe elementul declarat, ca în exemplul următor. typedef int far FARFUNC (); FARFUNC lângă * fp; C2090 „Funcția returnează o matrice”. Funcția nu poate returna o matrice (poate returna doar un pointer la o matrice). C2091 „Funcția returnează o funcție”. O funcție nu poate returna o funcție (poate returna doar un pointer către o funcție). C2092 „Elementul matricei nu poate fi o funcție”. Nu sunt permise matrice de funcții; cu toate acestea, se pot folosi matrice de pointeri de funcție. C2093 „Imposibil de inițializat date statice sau structuri cu adrese variabile automate”. C2098 Expresie non-adresă. A fost făcută o încercare de a inițializa un element de date care nu este o expresie de adresă. C2099 Offset non-const. Inițializatorul a folosit un offset non-const. C2100 „Utilizarea incorectă a operatorului (*)”. Operatorul (*) a fost aplicat unui nonpointer. C2101 "" și "în constantă". Operatorul (&) nu are nicio valoare de adresă ca operand. C2102 „” și „valoarea adresei este necesară”. Operatorul de adresare (&) trebuie aplicat valorii adresei. C2103 "" & "în variabila de registru". S-a încercat să se ia adresa unei variabile de registru. C2104 „” și „în câmp de biți”. A fost făcută o încercare de a prelua adresa câmpului de biți. C2105 "" operatorul "necesită o valoare de adresă". Acest operator nu are operand de adresă. C2106 "" operator ": operandul din stânga trebuie să fie adresabil". Operandul din stânga al acestui operator nu este adresabil. C2107 „Index nevalid, denumire indirectă (*) nu este permisă”. Un descriptor a fost aplicat unei expresii care nu evaluează la un pointer. C2108 Index non-întreg. O expresie non-întreg a fost folosită ca descriptor de matrice. C2109 Descriptor non-matrice. Descriptorul a fost folosit pe o variabilă care nu este o matrice. C2110 "" + ": 2 indicatori". S-a încercat să adăugați un indicator la altul. C2111 Pointer + valoare non-întreg. S-a făcut o încercare de a adăuga o valoare non-întreg la un indicator. C2112 Scădere nevalidă a indicatorului. A fost făcută o încercare de a scădea indicatori care nu indică același tip. C2113 "" - ": Operand indicator dreapta". Operandul din dreapta în scădere (-) este un indicator, dar operandul din stânga nu este. C2114 "" operator ": indicatorul la stânga; întreg necesar la dreapta". Operandul din stânga din acest operator este un pointer; operandul drept trebuie să fie o valoare întreagă. C2115 "" identificator ": tipuri incompatibile". Expresia conține tipuri incompatibile. C2116 "" operator ": operand stânga (sau dreapta) nevalid". Operandul specificat al acestui operator nu se potrivește cu acest operator. C2117 "" operator ": Invalid pentru structură sau amestec". Semnificația structurii și amestecului nu este permisă cu acest operator. C2118 Descriptor negativ. Valoarea care determină dimensiunea matricei este negativă. C2119 "" typedefs "ambele definesc un nume indirect (*)". Au fost folosite simultan două tipuri de typedef pentru a declara un element de date, iar ambele tipuri de typedef au un nume indirect. De exemplu, declarația p din exemplul următor este invalidă: typedef int * P INT; typedef scurt * P SCURT; / * această declarație este invalidă * / P SHORT P INT P; C2120 "" void "-invalid pentru toate tipurile". Tipul void a fost folosit într-o declarație cu un alt tip. C2121 „typedef definește o altă enumerare”. Sa încercat să se utilizeze tipul declarat în operatorul typedef pentru a specifica atât un tip de enumerare, cât și un tip diferit. C2122 „typedef definește o structură diferită”. S-a încercat să se utilizeze tipul declarat în instrucțiunea typedef pentru a specifica atât tipul structurii, cât și un alt tip. C2123 „typedef definește un amestec diferit”. Sa încercat să se utilizeze tipul declarat în instrucțiunea typedef pentru a specifica atât un tip de amestec, cât și un tip diferit. C2125 "" identificator ": Date ocupate de mai mult de 64K": Acest element de date depășește limita de dimensiune de 64K. C2126 "" identificator ": tipul de date automat depășește 32K". Memoria ocupată de variabilele locale ale funcției depășește limita specificată. C2127 Memoria parametrilor depășește 32K. Memoria necesară pentru parametrii funcției depășește limita de 32K. C2129 Identificatorul „funcției statice” „nu a fost găsit”. S-a făcut referire la o funcție statică care nu a fost niciodată definită. C2130 „#line necesită o linie care să conțină numele fișierului”. Numele fișierului a fost omis din directiva #line. C2131 „Atribute aproape/departe/uriașe specificate de mai multe ori.” Cuvintele cheie near și far au fost aplicate unui element de date de mai multe ori, ca în exemplul următor: typedef int near NINT; NINT departe a; / * invalid * / C2132 „Eroare de sintaxă: identificator neașteptat”. Identificatorul a apărut într-un format incorect din punct de vedere sintactic. C2133 Identificator „Matrice” „: dimensiune necunoscută” A fost făcută o încercare de a descrie o matrice cu o dimensiune nealocată, ca în exemplul următor: int mat add (array1) int array1; / * corect * / (int array2; / * incorect * /...) C2134 "" identificator ": structura sau amestecul este prea mare". Dimensiunea structurii sau a amestecului depășește limita stabilită de compilator (232 de octeți). C2135 „Caractere lipsă”) „în extensia macro”. Paranteza de închidere a fost omisă în apelul la comanda macro cu argumente. C2137 Constanta de caractere goale. A fost folosită o constantă nevalidă de caractere goale (""). C2138 „/ *” nepotrivire la marginea de închidere a comentariului „. Compilatorul a întâlnit un delimitator de comentariu de deschidere (/ *) fără un delimitator de închidere potrivit (* /). Această eroare poate apărea din cauza unei încercări de a utiliza comentarii imbricate incorecte. C2139 „Tipul urmat de” tipul „este nevalid”. Combinație incorectă de tipuri, ca în exemplul următor: long char a; C2140 „Tipul argumentului nu poate fi o funcție care returnează. .. ". Funcția a fost declarată ca parametru formal al unei alte funcții, ca în exemplul următor: int funcl (a) int a (); / * invalid * / C2141" Pentru o constantă de enumerare, valoarea depășește limitele permise . " enumerarea are o valoare care depășește limitele pentru un int C2142 „Elipsis necesită trei puncte.” Compilatorul a întâlnit un token care conține două puncte (..) și un pre- C2143 „Eroare de sintaxă: token lipsă înainte de token” token2 „” . Compilatorul se așteaptă să apară înainte de token2-token1. Acest mesaj poate apărea dacă acolada de închidere necesară ()), paranteza dreaptă ()) sau punct și virgulă (;) lipsesc. C2144 „Eroare de sintaxă: lipsește simbolul „token” înainte tipul „tip” „. Compilatorul necesită indicativul dat înainte de tipul dat. Acest mesaj poate apărea precedat de o acoladă de închidere ()), o paranteză dreaptă ()) sau un punct și virgulă (;). C2145" Eroare de sintaxă : înainte de id identificatorului îi lipsește lexemul „token” „. Compilatorul necesită prezența acestui lexem înaintea identificatorului. Acest mesaj poate apărea dacă punctul și virgulă (;) lipsește în ultima declarație de bloc. C2146 „Eroare de sintaxă: indicativ lipsă” identificator „înainte de identificare”. Compilatorul necesită jetonul dat înaintea identificatorului dat. C2147 „Matrice: dimensiune necunoscută”. A fost făcută o încercare de a mări indexul sau un pointer către o matrice, al cărui tip de bază nu a fost încă declarat. C2148 „Matrice prea mare”. Matricea depășește dimensiunea maximă permisă (232 de octeți). C2149 "" identificator ": acest câmp de biți nu poate avea lățime zero". Câmpul de biți cu numele dat este cu lățime zero. Numai câmpurile de biți fără nume pot avea dimensiunea zero. C2150 „„identificator”: câmpul de biți trebuie să fie int, int signed sau unsigned int. ANSI C necesită ca câmpurile de biți să fie int, signed int sau unsigned int. Acest mesaj poate apărea numai la compilarea cu opțiunea / Za. C2151 „Mai mult mai mult de un atribut cdecl / fortran / pascal specificat." A fost specificat mai mult de un cuvânt cheie convenție de apelare a funcției. C2152 "" identificator ": pointeri către funcții cu atribute diferite." S-a încercat alocarea unui pointer de funcție, declarat - unul cu unele convenții de legare (cdecl, fortran sau pascal) - un pointer către o funcție declarată cu alte convenții de legare. C2153 Constantele hexazecimale trebuie să aibă cel puțin o cifră hexazecimală. Ox sau OX sunt constante hexazecimale nevalide. „x” sau „X” trebuie să fie urmat de cel puțin o cifră hexazecimală. C2154 "" nume ": nu are legătură cu segmentul". Numele funcției a fost primul identificator specificat în lista de argumente a pragma alloc_text și este deja definit ca orice alt nume decât numele segmentului. C2155 Nume „nume”: deja în segmentul „. Numele funcției apare în mai mult de o pragma text alloc_. C2156 „Pragma trebuie să fie la nivelul exterior”. Unele pragme trebuie definite global, în afara corpului funcției, iar una dintre aceste pragma a ajuns în interiorul funcției. C2157 "" nume ": acest nume trebuie descris înainte de a fi folosit în lista de pragma." Acest nume de funcție din lista de funcții ale pragma alloc_text nu a fost descris înainte de a fi inclus în listă. C2158 "" nume ": este o funcție". Numele a fost specificat în lista de variabile pragma same_seg, dar a fost declarat anterior ca funcție. C2159 Mai mult de o clasă de memorie definită. În descriere au fost specificate mai multe clase de stocare, ca în exemplul următor: extern static int i; C2160 „## nu poate apărea la începutul unei definiții macro.” O definiție de macrocomandă începe cu un operator de înlocuire a simbolului, ca în exemplul următor: #define mac (a, b) ## a ... C2161 „## nu poate fi la sfârșitul unei definiții macro”. O definiție macro se termină cu un operator de înlocuire a simbolului (##). C2162 Este necesar un parametru macro formal. Jetonul care urmează operatorului (#) nu este un nume de parametru formal, ca în exemplul următor: #Define print (a) printf (#b) C2163 "" șir ": lipsește, ca intrinsec". Funcția definită în lista de funcții pentru pragma intrinsecă sau funcție nu este una dintre funcțiile disponibile în forma intrinsecă. C2165 "" cuvânt cheie ": nu se pot schimba pointerii către date". Cuvintele cheie fortran, pascal sau cdecl au fost folosite incorect pentru a modifica un pointer către date, ca în exemplul următor: char pascal * p; C2166 „Valoarea definește un obiect aparținând clasei de stocare „const””. S-a făcut o încercare de a atribui o valoare unui element de date declarat cu o clasă de memorie const. C2167 "" nume ": prea mulți parametri reali pentru intrinseci. Referința numelui funcției intrinseci conține prea mulți parametri reali. C2168" "nume": prea puțini parametri reali pentru intrinseci ". Referința numelui conține prea puțini parametri reali. C2169 "" nume ": este intrinsec, nu a putut fi determinat." S-a încercat definirea unei funcții deja descrise ca intrinsecă. C2171 "" operator ": operand nevalid". Acest operator unar a fost folosit cu un operand incorect, ca în exemplul următor: int (* fp) (); dublu d, d1; ... ... ... fp ++; d = ~ d1 C2172 "" funcția ": nu este de fapt un pointer, numărul parametrului" număr ". S-a încercat să se transmită un argument non-pointer unei funcții care necesită un pointer. Acest număr indică ce argument este invalid. C2173" " function ": nu este de fapt un pointer, parametru" număr ": lista de parametri" număr "". S-a încercat să se transmită un argument non-pointer unei funcții care necesită un pointer. Această eroare poate apărea în apelurile care returnează un pointer la Primul număr indică ce argument a cauzat eroarea; al doilea număr indică lista de argumente care conține argumentul nevalid. C2174 „„ funcția „: de fapt este de tip void: parametru” număr „, lista de parametri” număr „” A fost o încercare făcut pentru a transmite un argument de tip void unei funcții. Parametrii formali și argumentele funcției nu pot fi de tip void; cu toate acestea, pot fi de tip void * (un pointer către void). Această eroare apare în apelurile care returnează un pointer către un funcţie. p indică ce argument a cauzat eroarea; al doilea număr indică lista de argumente care conține argumentul nevalid. C2175 "" funcția ": xref nerezolvat". Această funcție este nedefinită în fișierul sursă, fie încorporată în mediul de programare QUICK-C, fie în biblioteca QUICK, dacă este încărcată. Această eroare apare numai în programele cu un singur modul integrat în mediul Quick-C. Pentru a rezolva această problemă, fie definiți funcția în fișierul sursă, fie încărcați biblioteca QUICK care conține funcția dată sau (dacă funcția este conținută în biblioteca standard de funcții SI), creați o listă de programe pentru program. C2177 „Constant prea mare”. Informația s-a pierdut deoarece constanta este prea mare pentru a înlocui tipul căruia îi este atribuită. (1)

D.1.3. Mesaje de avertizare.

Mesajele enumerate în această secțiune dezvăluie unele probleme potențiale, dar nu interferează cu compilarea și legarea. Numărul din paranteze de la sfârșitul unui mesaj de eroare indică nivelul minim de avertizare setat pentru acel mesaj. Număr Mesaj de avertizare C4000 „Avertisment nerecunoscut, contactați serviciul tehnic Microsoft”. Compilatorul a întâmpinat o eroare necunoscută. Vă rugăm să raportați această eroare către Microsoft Corporation utilizând formularul de solicitare a asistentului de produs din partea din spate a acestui manual. C4001 Identificatorul „macrocomandă” „necesită parametri”. Acest identificator a fost definit ca o macrocomandă care are unul sau mai multe argumente, dar este folosit în program fără argumente. (1). C4002 „Prea mulți parametri reali pentru macro-ul de identificare”. Numărul de argumente reale utilizate cu acest identificator este mai mare decât numărul de parametri formali specificați în definiția macro a acestui identificator. (1). C4003 „Nu sunt suficienți parametri reali pentru macro” identificatorul „”. Numărul de argumente reale utilizate cu acest identificator este mai mic decât numărul de parametri formali specificați în definiția macro a acestui identificator. (1). C4004 Lipsește paranteza de închidere după definită. Paranteza de închidere lipsește după clauza #if definită. (1). C4005 "" identificator ": redefinire". Acest identificator a fost redefinit. (1). C4006 „Directiva #indef necesită un identificator”. Directiva #indef conține un identificator care nu este definit. (1). C4009 „Linie prea lungă, caracterele finale sunt trunchiate”. Dimensiunea liniei depășește limita stabilită de compilator. Pentru a corecta această situație, împărțiți șirul în două sau mai multe subșiruri. (1). C4011 „Identificatorul a fost trunchiat la” identificatorul „”. Sunt acceptate doar primele 31 de caractere ale identificatorului. (1). C4014 "" identificator ": câmpul de biți trebuie să fie de tip nesemnat. Acest câmp de biți nu a fost descris ca nesemnat. Câmpurile de biți trebuie descrise ca numere întregi nesemnate. Compilatorul va converti acest câmp de biți în consecință. (1 ). C4014" " identificator ": câmpul de biți trebuie să fie de tip întreg." Câmpul de biți a fost descris ca un număr întreg. Câmpurile de biți trebuie descrise ca numere întregi fără semn. A fost aplicată o transformare. (1). C4016 " „identificator”: niciun tip returnat de funcție „. Această funcție nu a fost încă descrisă sau a fost definită, deci tipul valorii returnate este necunoscut. Se presupune tipul standard (int). (2). C4017 Turnarea unei expresii întregi la un indicator de departe. Alte indicatoare conțin adrese de segment complet. Pe procesorul 8086/8088, turnarea unei valori întregi (int) la un pointer „departe” poate crea o adresă cu o valoare de segment fără sens. (1). C4020 Prea mulți parametri reali. Numărul de argumente specificat în apelul funcției este mai mare decât numărul de argumente formale specificate în lista de argumente a definiției funcției. (1). C4021 „Prea puțini parametri reali”. Numărul de argumente specificat în apelul funcției este mai mic decât numărul de parametri formali specificați în lista de argumente a definiției funcției. (1). C4022 Nepotrivire indicator: Parametrul nr. Tipul de indicator al acestui parametru este diferit de tipul de indicator specificat în lista de argumente a definiției funcției. (1). C4024 „Diverse tipuri: parametru n”. Tipul acestui parametru de funcție nu se potrivește cu tipul specificat în lista de argumente a definiției funcției. (1). C4025 „Descrierea funcției specifică lista de argumente variabile”. Lista de tipuri de argumente a unei definiții de funcție se termină cu o virgulă urmată de o elipsă, ceea ce înseamnă că funcția poate lua un număr variabil de argumente, dar nu au fost descriși parametri formali pentru funcție. (1). C4026 „Funcția a fost descrisă cu o listă formală de parametri”. Funcția a fost descrisă ca luând argumente, dar definiția funcției nu a specificat parametri formali. (1). C4027 „Funcția a fost descrisă fără lista formală de parametri”. Funcția a fost descrisă ca nu acceptă argumente (lista de tipuri de argumente constă din cuvântul void), dar parametrii formali au fost specificați în definiția funcției sau parametrii actuali au fost specificați în apelul funcției. (1). C4028 „Descrierea parametrului n este diferită”. Tipul acestui parametru este inconsecvent cu tipul corespunzător din lista de tipuri de argumente sau cu parametrul formal corespunzător. (1). C4029 „Descrierea listei de parametri diferă de definiție”: Lista de tipuri de argumente specificate în descrierea funcției nu se potrivește cu tipurile de parametri formali specificati în definiția funcției. (1). C4030 „Prima listă de parametri este mai lungă decât a doua”. Funcția a fost descrisă de mai multe ori, cu diferite liste de tipuri de argumente. (1). C4031 „A doua listă de parametri este mai lungă decât prima”. Funcția a fost descrisă de mai multe ori, cu diferite liste de tipuri de argumente. (1). C4032 „Structură/amestec fără nume ca parametru”. Tipul de structură sau amestec a fost transmis ca un argument fără nume, adică o descriere formală a parametrului nu poate folosi un nume și trebuie să descrie un tip. (1). C4033 „Funcția trebuie să returneze o valoare”. Dacă funcția nu este declarată nulă, trebuie să returneze o valoare. (2). C4034 „Dimensiunea operatorului a returnat 0”. Operandului a fost aplicat dimensiunea operatorului, iar rezultatul a fost 0. (1). C4035 "" identificator ": nicio valoare returnată". Funcția este descrisă ca returnând o valoare, dar nu. (2). C4036 „Lista de parametri formali nu este așteptată”. Lista parametrilor formali a fost specificată în descrierea funcției. Lista de parametri formali este ignorată. (1). C4037 "" identificator ": parametrii formali sunt ignorați." În descrierea funcției, nu s-a găsit nici clasa de memorie, nici numele tipului înainte de descrierea parametrilor formali, ca în exemplul următor: int * f (a, b, c); Parametrii formali sunt ignorați. (1). C4038 "" identificator ": parametrul formal are o clasă de memorie nevalidă". Acest parametru formal a fost descris cu o altă clasă de memorie decât auto sau registru. (1). C4039 "" identificator ": funcția este folosită ca argument" Parametrul formal al funcției a fost descris ca o funcție, ceea ce este incorect. Parametrul formal va fi convertit într-un indicator de funcție (1). C4040 „Cuvântul cheie aproape/departe/în identificatorul este ignorat.” Cuvintele cheie aproape sau departe nu au niciun efect asupra acestui identificator și, prin urmare, sunt ignorate (1). C4041 Identificator „parametru formal” „înlocuit”. Acest parametru formal a fost redefinit în corpul funcției, făcând indisponibil parametrul real corespunzător pentru funcție. (1). C4042 „Identificatorul are o clasă de memorie nevalidă”. Clasa de memorie specificată nu poate fi utilizată în acest context (de exemplu, parametrilor unei funcții nu li se poate atribui o clasă externă). O clasă de memorie standard a fost folosită pentru acest context în loc de cea nevalidă. (1). C4043 "" identificator ": tipul void a fost schimbat în int". Un articol de date, altul decât o funcție, a fost declarat a fi de tip nul. (1). C4045 "" identificator ": matrice depășită". Au fost specificate prea multe inițializatoare pentru matricea dată. Inițializatoarele suplimentare vor fi ignorate. (1). C4046 „&” în funcție/matrice este ignorat”. Sa încercat să se aplice operatorul de adresare (&) unui identificator care reprezintă o funcție sau o matrice. (1). C4047 "" operator ": diferite niveluri de denumire indirectă". Această situație este ilustrată de următorul exemplu: char ** p; char * q; ... ... ... p = q; C4048 „Matricea este descrisă cu descriptori diferiți”. Matricea a fost descrisă de două ori cu dimensiuni diferite. Se utilizează dimensiuni mari. (1). C4049 "" operator ": denumirea indirectă se aplică diferitelor tipuri". Operatorul de denumire indirectă (*) a fost folosit în expresie pentru a accesa valori de diferite tipuri. (1). C4051 Conversie de date. Într-o expresie, două elemente de date sunt de tipuri diferite, care vor converti datele în același tip. (2). C4052 „Diferite tipuri de enumerare”. Două tipuri diferite de enumerare au fost folosite în expresie. (1). C4053 „Cel puțin un operand nul” O expresie nulă a fost folosită ca operand. (1). C4056 Depășire aritmetică constantă. Rezultatul operației este mai mare decât 0x7FFFFFFF. (1). C4057 Depășire constantă de multiplicare. Rezultatul operației este mai mare decât 0x7FFFFFFF. (1). C4058 „Adresă variabilă cadru luată, DS! = SS”. Programul a fost compilat cu un segment de date standard (DS) care nu este egal cu segmentul de stivă (SS), programul încearcă să acceseze o variabilă cadru cu un indicator apropiat.(1) C4059 „Adresa segmentului pierdută din cauza conversiei”. Conversia indicatorului „departe” (adresa completă a segmentului) în indicatorul „aproape” (offset) a dus la pierderea adresei segmentului. (1). C4060 Conversie adresă lungă în adresă scurtă. Conversia unei adrese lungi (pointer de 32 de biți) într-o adresă scurtă (pointer de 16 biți) a dus la pierderea adresei segmentului. (1). C4061 „nepotrivire argument lung / scurt: conversie aplicată”. Tipurile de bază ale parametrilor actuali și formali ai unei funcții sunt diferite. Parametrul real este convertit în tipul parametrului formal. (1) C4063 "" identificator ": funcție prea mare pentru pasul de optimizare". Această funcție nu a fost optimizată deoarece nu există suficientă memorie pentru aceasta. Pentru a remedia această situație, reduceți dimensiunea funcției împărțind-o în două sau mai multe funcții mai mici. (0). C4066 „Tabelul cu nume locale este plin – este posibil să lipsească unele nume locale din listă.” Generatorul de liste a depășit domeniul de aplicare dinamic alocat pentru variabilele locale, astfel încât lista inițială poate să nu includă tabelul de nume complet pentru toate variabilele locale șirul C4067 ". Directiva preprocesor este urmată de caractere suplimentare, ca în exemplul următor: #endif NO_EXT_KEYS Aceasta este acceptată în unele versiuni ale compilatorului Microsoft C, cu excepția versiunii 1.0 a Microsoft Quick C. (1). C4068 „Pragma necunoscută”. Compilatorul nu a putut recunoaște pragma și a ignorat-o. (1). C4069 Conversia indicatorului apropiat în număr întreg lung. Indicatorul apropiat a fost convertit într-un întreg lung, care a umplut cei mai semnificativi biți cu valoarea curentă a segmentului de date, care nu este egală cu zero. (1). C4071 "" identificator ": prototipul funcției nu este definit". Această funcție a fost apelată de compilator înainte ca compilatorul să proceseze prototipul funcției corespunzătoare. (3). C4072 Memoria insuficientă pentru a procesa informațiile de depanare. V-ați compilat programul cu opțiunea / Zi, dar nu există suficientă memorie pentru a genera informațiile de depanare adecvate. (1). C4073 „Imabricarea prea adâncă, imbricarea ulterioară este ignorată în timpul remedierii.” Descrierile au apărut la un nivel de imbricare mai mare de 13. Ca urmare, toate descrierile vor fi percepute ca și cum ar fi la același nivel. (1). C4074 „A fost folosită o extensie non-standard”. Această extensie non-standard a fost utilizată în timp ce opțiunea Extensie de limbă din caseta de dialog Compilare era dezactivată sau opțiunea / Ze era inactivă. Aceste extensii sunt date în Secțiunea 8.1.4.6. „Utilizarea extensiilor de limbaj Microsoft C: Opțiunea de extensie a limbii”. (dacă opțiunea / Za este activată, această situație dă o eroare). (3). C4075 „Dimensiunea expresiei din instrucțiunea switch sau constanta din instrucțiunea case este prea mare - se convertește în int”. Valoarea care apare în instrucțiunile switch sau case este mai mare decât tipul int. Compilatorul convertește această valoare nevalidă în int. (1). C4076 "" tip ": poate fi utilizat numai cu tipuri întregi". Un modificator de tip semnat sau nesemnat a fost aplicat unui tip non-intger, ca în exemplul următor: unsigned double b; C4077 „Opțiune pragma check_stack necunoscută”. O opțiune necunoscută a fost specificată cu forma veche a pragma check_stack, ca în exemplul următor: #pragma check_stack da În vechea formă a pragma check_stack, argumentul pragma trebuie să fie gol + sau -. C4079 Personaj neașteptat." Un „caracter” separator neașteptat a fost găsit în lista de argumente pragma. „C4080 Nume segment ignorat. Numele segmentului a fost omis în primul argument al listei de argumente pragma alloc_text. Acest lucru se întâmplă dacă primul simbol din lista de argumente nu este un identificator. C4082 ID-ul necesar. Un identificator lipsea din lista de argumente pragma. C4083 „Omis” (“”. Lista de argumente pragma a omis o paranteză stângă deschisă, ca în exemplul următor: #pragma check_pointer on) C4084 „Este necesar cuvântul cheie pragma”. Indicatorul care urmează cuvântului cheie pragma nu este un identificator, ca în exemplul următor: #pragma (on) C4085 „Necesar A fost specificat un argument invalid pentru noua formă a pragma check_stack, ca în exemplul următor: #pragma check_stack (da ) C4087 "" nume ": descris cu o listă de parametri goală." Această funcție a fost descrisă ca nefiind parametri, în timp ce apelul funcției definește parametrii actuali, ca în exemplul următor: int fl (void);... Fl (10); C4090 Atribute „Diferite const” „. Un pointer către un element de date descris ca const a fost transmis unei funcții al cărei parametru formal corespunzător este un pointer către un element de date care nu este const. Aceasta înseamnă că acest element de date este poate fi modificat subtil, ca în exemplul următor: const char * p = "ascde"; int str (char * s);... str (p); C4091 "Nu sunt descrise nume." Compilatorul a întâlnit o descriere goală, ca în exemplul următor (2): int; C4092 „Descriere n "Enumerarea / structura / amestecul nu are nume." Compilatorul a întâlnit o descriere goală folosind o structură, un amestec sau o enumerare nelegată, ca în exemplul următor: struct (...); C4093 Caracter nou linie nevalid în constanta de caractere în cod nevalid. O expresie constantă într-o directivă de preprocesor #if, #ifdef sau #ifndef este evaluată la 0, ceea ce face ca codul corespunzător să fie inactiv, iar caracterul de nouă linie apare în codul inactiv dat între ghilimele simple sau duble corespunzătoare. C4095 Prea multe argumente pentru o pragma. Într-o pragma care are un singur argument, apar mai multe argumente. C4096 „Un imens este tratat cât de departe”. Deoarece compilatorul Microsoft Quick-C nu acceptă cuvântul cheie uriaș, elementul este tratat așa cum este descris cu cuvântul cheie far. Dacă elementul sau funcția trebuie să fie încă de tip uriaș, recompilați programul cu Microsoft C Optimization Compiler C4097 „În linie a fost întâlnit un caracter hexadecimal non-ASCII”. Caracterul non-ASCII dat a fost folosit în șirul de caractere dat.

D.1.4. Limitări ale compilatorului.

Pentru a lucra cu compilatorul Microsoft Quick-C, trebuie să aveți suficientă memorie pentru a gestiona fișierele temporare utilizate pentru procesare. Necesită memorie aproximativ de două ori mai mare decât fișierul original.

Tabelul D.1 enumeră limitările impuse de compilatorul C. Dacă programul dumneavoastră depășește una dintre limitele specificate, veți fi informat despre aceasta printr-un mesaj de eroare.

Tabelul D.1. Limitări ale compilatorului SI. Element de program Descriere Restricții Literale șir Lungime maximă șir, 512 octeți, inclusiv o terminație nulă (\ 0). Constante Mărimea maximă a unei constante depinde de tipul acesteia; consultați Ghidul de referință pentru limbajul SI. Identificatori Lungimea maximă a identificatorului este de 31 de octeți (nu sunt acceptate caractere suplimentare). Descrieri Nivelul maxim de imbricare este de 10 niveluri de imbricare pentru definițiile structurii sau amestecului. Directive de preprocesare - Dimensiunea maximă a macrocomenzii - 512 octeți. gunoi de definiție. Număr maxim de 8 argumente ale parametrilor efectivi într-o macrocomandă. Lungimea maximă reală este de 256 de octeți a argumentului de preprocesor. Nivelul maxim de imbricare este de 32 de niveluri de directive #if, #ifdef, #ifndef. Nivelul maxim de imbricare este de 10 niveluri de imbricare pentru fișierele incluse. Compilatorul nu limitează în mod explicit numărul și complexitatea descrierilor, definițiilor și operatorilor în funcții individuale sau într-un program. Dacă compilatorul întâlnește o funcție sau un program prea mare sau prea complex pentru a fi procesat, afișează un mesaj de eroare.

D.2 Mesaje de eroare în linia de comandă

Mesajele care indică erori pe linia de comandă utilizată pentru a invoca compilatorul sunt în unul dintre următoarele formate: eroare fatală în linia de comandă D1xxx: text mesaj Eroare eroare în linia de comandă D2xxx: text text Avertisment linie de comandă eroare D4xxx: text mesaj Avertisment. Dacă este posibil, compilatorul continuă prin imprimarea unui mesaj de avertizare. În unele cazuri, erorile din linia de comandă sunt irecuperabile și compilatorul nu va mai funcționa. Mesajele din secțiunile D.2.1-D.2.3 descriu erori de linie de comandă.

D.2.1. Erori fatale în linia de comandă.

Următoarele mesaje descriu erori fatale. Driverul compilatorului nu se poate recupera după o eroare fatală; nu mai funcționează după ce mesajul este tipărit. Număr Mesaj de eroare fatală pe linia de comandă D1000 Eroare fatală necunoscută în linia de comandă. Contactați serviciile tehnice Microsoft. Compilatorul a întâlnit o eroare irecuperabilă irecuperabilă. Vă rugăm să raportați condițiile pentru această eroare către Microsoft Corporation utilizând formularul de Solicitare de asistență pentru produs din spatele acestui manual. D1001 „Nu se poate executa „nume fișier””. Compilatorul nu poate găsi acest fișier în directorul de lucru curent sau în alte directoare specificate de variabila PATH. D1002 „Prea multe fișiere deschise, nu se pot redirecționa” numele fișierului „”. Nu mai există fișiere pentru a redirecționa ieșirea opțiunii / P către un fișier. Încercați să modificați fișierul CONFIG.SYS și să creșteți valoarea num pe linia fișiere = num (dacă num este mai mic de 20).

D.2.2. Mesaje de eroare din linia de comandă.

De îndată ce driverul de compilare întâlnește una dintre erorile enumerate în această secțiune, acesta continuă (dacă este posibil) compilarea programului și imprimă mesaje de eroare suplimentare. Cu toate acestea, fișierul obiect nu este construit. Nu. Mesaj de eroare în linia de comandă D2000 „Eroare în linia de comandă nerecunoscută, contactați Serviciile tehnice Microsoft”. Compilatorul a întâmpinat o eroare necunoscută. Vă rugăm să raportați această eroare către Microsoft Corporation utilizând formularul de Solicitare asistență pentru produs de la sfârșitul acestui manual. D2001 Prea multe nume definite cu -D. Au fost definite prea multe constante simbolice cu opțiunea de linie de comandă / D. Limita obișnuită pentru definiții pe linia de comandă este 16; dacă utilizați opțiunile / u sau / u, limita crește la 20. D2002 Modelul predefinit a fost anulat. Au fost definite două modele de memorie diferite; se utilizează modelul specificat ulterior pe linia de comandă. D2003 Numele fișierului sursă a fost omis. Nu ați specificat un nume pentru fișierul sursă compilat. D2007 "Opțiunea este setată incorect, ar trebui să înlocuiți" șir1 "cu" șir2 "". Această opțiune a fost dată de mai multe ori cu argumente conflictuale șir1 și șir2. D2008 „Prea multe steaguri pentru opțiunea șir”. Au fost specificate prea multe litere cu opțiunea dată (de exemplu, cu opțiunea / O). D2009 „Caracter necunoscut pentru șirul de opțiuni”. Una dintre literele din această opțiune nu este recunoscută. D2010 Opțiune necunoscută în virgulă mobilă. Această opțiune în virgulă mobilă (opțiunea / FP) nu este validă. D2011 Este permisă o singură opțiune în virgulă mobilă. Ați specificat mai mult de o opțiune în virgulă mobilă (/ FP) pe linia de comandă. D2012 „Există prea multe opțiuni de linker pe linia de comandă.” Ați încercat să specificați peste 128 de opțiuni individuale și fișiere obiect pentru linker pe linia de comandă. D2015 „Fișierele de asamblare nu sunt procesate”. Ați specificat un nume de fișier cu extensia .ASM pe linia de comandă. Deoarece compilatorul nu poate invoca automat Macro Assembler (MASM), nu poate asambla aceste fișiere. D2018 „Nu se poate deschide fișierul linker cmd”. Fișierul de mapare care transmite numele și opțiunile fișierului obiect către linker nu poate fi deschis. Această eroare poate apărea dacă orice fișier numai în citire are același nume cu fișierul de mapare a linkerului. D2019 „Nu se poate suprascrie fișierul original” numele „”. Ați setat fișierul sursă ca rezultat. Compilatorul previne suprascrisul fișierului sursă de unul dintre fișierele de ieșire ale compilatorului. D2020 „Opțiunea -Gc necesită capacitatea de activare a cuvintelor cheie extinse (-Ze). Opțiunea / Gc și opțiunea / Za au fost specificate pe aceeași linie de comandă. Opțiunea / Gc necesită abilitatea de a specifica cuvântul cheie extins cdecl atunci când accesați funcțiile bibliotecii. D2021 „Argument numeric nevalid” șir „”. Un șir non-numeric a fost specificat după o opțiune care necesită un argument numeric. D2022 „Nu se poate deschide fișierul de ajutor cl.hlp”. A fost specificată opțiunea / HELP, dar fișierul care conține mesajele de ajutor nu a fost găsit în directorul curent sau în directoarele specificate de variabila PATH.

D.2.3. Mesaje de avertizare pe linia de comandă.

Mesajele enumerate în această secțiune descriu probleme potențiale, dar nu întrerup compilarea și legarea. Mesaje de avertizare cu numărul D4000 „Avertisment necunoscut în linia de comandă, contactați serviciile tehnice Microsoft.” O situație necunoscută a fost detectată de compilator. Vă rugăm să raportați această situație către Microsoft Corporation utilizând formularul de Solicitare de asistență pentru produs din partea din spate a acestui manual. D4002 „Opțiunea șir necunoscută este ignorată”. Una dintre opțiunile oferite pe linia de comandă a fost nerecunoscută și, prin urmare, ignorată. D4003 „80186/286 selectat pentru generarea codului, nu 8086”. Au fost specificate ambele variante: / G0 si / G2; se acordă preferință opțiunii / G2. D4004 Optimizat în funcție de timp, nu de dimensiune. Acest mesaj a confirmat utilizarea opțiunii / Ot pentru optimizare. D4005 „Nu se poate executa „nume fișier”; introduceți discheta și apăsați orice tastă.” Comanda QCL nu poate găsi fișierul executabil specificat de-a lungul rutei specificate. D4006 "Doar una dintre opțiunile -P / -E / -EP permisă, -P selectată." A fost specificată mai mult de o opțiune de ieșire a preprocesorului. D4007 „Opțiunea -C este ignorată (de asemenea, trebuie să specificați -P sau -E sau -EP)". Opțiunea / C trebuie utilizată împreună cu una dintre opțiunile de ieșire ale preprocesorului (/ E, / EP, / P). D4009 „Pragul doar pentru date mari/de mari dimensiuni, ignorat”. Opțiunea / Gt a fost folosită într-un model de memorie care are aproape pointeri către date. Poate fi folosit doar pentru modele compacte și mari. D4010 „Opțiunea -Gp nu se aplică, ignorată”. Versiunea DOS a Microsoft C nu acceptă crearea de profiluri. D4013 „Listarea combinată are prioritate față de listarea obiectelor” Când opțiunea / Fc este specificată cu una dintre opțiunile / Fl sau / Fa, este generată o listare combinată (/ Fc). D4014 „Valoare numerică nevalidă pentru șir” șir „. Utilizați numărul valorii implicite”. O valoare nevalidă a fost specificată într-un context care necesită o anumită valoare numerică. D4017 Opțiuni de verificare a stivei aflate în conflict - verificarea stivei a fost anulată. Ați specificat ambele opțiuni / Ge și / Gs pe linia de comandă CL. Opțiunea Gs are prioritate, astfel încât controlul stivei este suprascris în acest program.

D.3. Mesaje de eroare de rulare.

Erorile de rulare se încadrează în patru categorii: 1. Excepții când se efectuează operații cu virgulă mobilă pe coprocesorul sau emulator matematic 8087/80287. Aceste situații sunt descrise în Secțiunea D.3.1.

2. Mesaje de eroare generate de biblioteca runtime care vă informează despre erori grave. Aceste mesaje sunt enumerate și descrise în Secțiunea D.3.2.

3. Mesaje de eroare generate în timpul apelului la procedurile de gestionare a erorilor bibliotecii runtime - abort, assert, perror - de îndată ce programul apelează procedura. Această rutină scrie mesaje la ieșirea standard. Pentru o descriere a acestor proceduri și a mesajelor de eroare asociate, consultați Ghidul de referință Microsoft-C Procedure Library.

4. Mesaje de eroare generate de apelurile de proceduri matematice din biblioteca C run-time. În caz de eroare, rutinele matematice returnează o valoare eronată, iar unele imprimă un mesaj la ieșirea standard. Pentru o descriere a procedurilor matematice și a mesajelor de eroare asociate, consultați Ghidul de referință Microsoft-C Process Library.

D.3.1. Excepții în virgulă mobilă.

Mesajele de eroare enumerate mai jos sunt generate de coprocesorul matematic 8087/80287. Pentru o descriere a defecțiunilor hardware, consultați documentația pentru familia de procesoare Intel. Aceste erori pot fi detectate și de emulatorul în virgulă mobilă încorporat în biblioteca standard Quick-C.

Folosind atribuirea cuvintelor de control al coprocesorului 8087/80287, următoarele excepții sunt mascate și, prin urmare, nu apar Excepție Standard Masking Action

situatie

Număr prea mic Situația este mascată Pierderea semnificației Rezultatul este redus la zero Pierderea preciziei Situația este mascată Pentru informații despre cum să schimbați cuvântul de control pentru operațiile cu virgulă mobilă, consultați paginile de referință _control87 din Microsoft C Procedure Library Reference.

În plus, următoarele erori nu apar în codul generat folosind compilatorul Microsoft Quick-C sau obținut folosind biblioteca C Standard:

Rădăcină pătrată Stack Limită inferioară Neemulate Excepțiile în virgulă mobilă au următorul format: eroare de rulare M61nn: MATH - eroare în virgulă mobilă: text mesaj Număr Excepții în virgulă mobilă M6101 Invalid. A avut loc o operațiune nevalidă. Acest lucru se întâmplă de obicei atunci când se confruntă cu incertitudini. Această eroare face ca programul să se oprească cu codul de ieșire 129. Număr Excepții în timpul operațiunilor cu virgulă mobilă M6102 „Număr prea mic”. A fost generat un număr în virgulă mobilă prea mic, utilizarea ulterioară va duce la pierderea semnificației. Astfel de situații sunt de obicei mascate, sunt surprinse și procesate. Programul se termină cu codul de terminare 130. M6103 „Diviziunea la zero”. S-a încercat împărțirea la zero. Programul se termină cu codul 131. M6104 „Overflow”. S-a produs o depășire în timpul unei operații în virgulă mobilă. Programul se termină cu codul 132. M6105 „Pierderea semnificației”. O pierdere de semnificație a avut loc în timpul unei operațiuni în virgulă mobilă. Astfel de situații sunt de obicei mascate; o valoare prea mică este înlocuită cu zero. Programul se încheie cu un cod de ieșire 133. M6106 Pierderea preciziei. S-a produs o pierdere de precizie în timpul unei operații în virgulă mobilă. Această situație trece de obicei neobservată, deoarece aproape toate operațiunile cu virgulă mobilă pot duce la o pierdere a preciziei. Programul se termină cu codul 134. M6107 „Nu se poate emula” S-a încercat executarea unei instrucțiuni de coprocesor 8087 / / 80287, care este invalidă și nu este acceptată de emulator. Programul se termină cu codul 135. M6108 „Rădăcină pătrată”. Operandul rădăcină pătrată este negativ. Programul se iese cu codul 136. (Rețineți că funcția sqrt din biblioteca de proceduri C verifică argumentul înainte de execuție și returnează o eroare dacă argumentul este negativ; pentru o descriere a funcției sqrt, consultați documentul: Procedura Microsoft-C Bibliotecă de referință: M6110 „Stack overflow” O expresie în virgulă mobilă a provocat o depășire a stivei pe coprocesorul sau emulatorul 8087/80287. (Situațiile de depășire a stivei sunt prinse până la limita de 7 niveluri în plus față de cele opt niveluri acceptate în mod normal de 8087/80287 coprocesor).cod 138. M6111 „Stack Bottom Boundary” Executarea unei operații în virgulă mobilă pe coprocesorul sau emulatorul 8087/80287 a determinat limitarea inferioară a stivei. Programul se termină cu codul 139. M6112 „O eroare a fost generată în mod clar”. Un semnal care indică o eroare în timpul unei operații în virgulă mobilă a fost trimis cu un apel de ridicare (SIGFPE). Programul se termină cu codul 140.

D.3.1. Mesaje de eroare de rulare.

Următoarele mesaje descriu erori generate în timpul execuției programului. Numerele erorilor de rulare variază de la R6000 la R6999.

Mesajele de eroare de rulare au următoarea formă de bază:

Eroare de rulare R6nnn - mesaj text (- text mesaj) Număr R6000 mesaj de eroare de rulare „Stack overflow”. Programul dvs. a depășit spațiul de stivă. Acest lucru se poate întâmpla dacă programul dvs. utilizează multe date locale sau este recursiv. Programul se iese cu codul 255. Pentru a corecta această situație, recompilați programul utilizând comanda QCL cu opțiunea / F și recompilați programul utilizând opțiunea linker / STACK pentru a acomoda stiva mare R6001 Null Pointer Assignment. În timpul execuției programului, conținutul segmentului NULL a fost modificat. Segmentul NULL este un loc special situat la adrese cu memorie redusă, care de obicei nu este folosit. Dacă conținutul segmentului NULL s-a modificat în timpul execuției programului, aceasta înseamnă că programul a fost scris în această zonă, de obicei din cauza unui pointer nul aplicat neglijent. Rețineți că programul dvs. poate conține pointeri nuli, dar acest mesaj nu va fi generat; acest mesaj apare numai dacă se accesează zona de memorie folosind un pointer nul.Această eroare nu va determina oprirea programului; mesajul de eroare este urmat de o terminare normală a programului. Eroarea returnează un cod de ieșire diferit de zero. Acest mesaj reflectă posibilitatea unor erori grave în program. Deși programul în care apare o astfel de eroare poate funcționa corect, este probabil să dea erori în viitor și poate eșua atunci când este rulat într-un mediu de operare diferit. R6002 „Biblioteca de proceduri pentru operații cu virgulă mobilă nu este încărcată”. Programul dvs. necesită o bibliotecă în virgulă mobilă, dar această bibliotecă nu este încărcată. Programul se termină cu codul de eroare 255. Această eroare poate apărea în următoarele două situații: 1. Programul a fost compilat sau legat cu o opțiune precum /FPi87, care necesită un coprocesor 8087 sau 80287, dar programul rulează pe o mașină care nu are unul. Pentru a remedia eroarea, fie recompilați programul cu opțiunea / FPi, fie instalați un coprocesor. (Consultați secțiunea 9.3.5 din acest manual pentru mai multe informații despre aceste opțiuni și biblioteci. 2. Șirul de format pentru una dintre procedurile din familia printf sau scanf conține specificația pentru formatul în virgulă mobilă, în timp ce valorile sau variabilele cu acolo nu este virgulă mobilă în program. Compilatorul Quick-C încearcă să minimizeze dimensiunea programului prin încărcarea bibliotecii de suport în virgulă mobilă numai atunci când este absolut necesar. Deoarece nu au fost găsite specificații în virgulă mobilă în șirurile de format, rutinele necesare în virgulă mobilă nu au fost încărcate. Pentru a corecta această eroare, utilizați un argument în virgulă mobilă pentru a se potrivi cu specificația de format specificată. Acest lucru va determina încărcarea bibliotecii de suport în virgulă mobilă. R6003 Număr întreg împărțit la zero. S-a încercat împărțirea unui număr întreg la zero, cu un rezultat nedefinit. Programul se iese cu codul 255. R6004 „Necesită DOS 2.0 sau mai mare”. Compilatorul Quick-C nu poate rula pe versiuni ale sistemului de operare DOS anterioare 2.0. R6005 „Memorie insuficientă pentru exec”. Erorile de la R6005 la R6007 apar atunci când procedurile apelate de una dintre biblioteci eșuează, când sistemul de operare DOS nu poate returna controlul procesului părinte. Această eroare indică faptul că nu există suficientă memorie pentru a încărca programul apelat. R6006 „Format nevalid pentru exec”. Fișierul executat de una dintre funcțiile exec nu are formatul cerut de fișierul executabil. R6007 „Mediu executiv nevalid”. În timpul unui apel către una dintre funcțiile exec, sistemul de operare DOS a detectat un mediu incorect pentru procesul copil. R6008 Memoria insuficientă pentru argumente. R6009 Memoria insuficientă pentru mediul software. Erorile R6008 și R6009 pot apărea la pornirea programului dacă există suficientă memorie pentru a încărca programul, dar nu există suficient spațiu pentru vectorul argv, sau vectorul envp sau ambele. Pentru a evita această problemă, rescrieți procedurile _setargv sau _setenvp R6012 „Acces incorect la indicatorul din apropiere”. În program a fost folosit un indicator de aproape nul. Această eroare poate apărea numai atunci când controlul asupra pointerilor este activat (adică dacă programul a fost compilat cu opțiunea Pointer Check din caseta de dialog Compilare, opțiunea / Zr de pe linia de comandă sau când pragma pointer_check este activă). R6015 Întrerupere neașteptată. Programul nu poate fi executat deoarece conține întreruperi neașteptate. Când sunt create întreruperi într-un program de listă programat care rulează într-un mediu software, Quick-C creează automat fișiere obiect și le transmite linkerului. Fișierele obiect transmise linkerului conțin întreruperi cerute de mediul de programare Quick-C. Cu toate acestea, nu puteți rula un program derivat din aceste fișiere obiect în afara mediului de programare Quick-C.

D.3.3. Constrângeri de timp de execuție.

Tabelul D.2 listează constrângerile de rulare ale programelor. Dacă programul dvs. încalcă una dintre aceste restricții, sistemul emite un mesaj de eroare corespunzător. Tabelul D.2. Constrângeri de rulare software. Date Element Descriere Restricții Fișiere Dimensiunea maximă a fișierului 232-1 octeți (4 gigaocteți) Numărul maxim de fișiere deschise simultan (fluxuri) este de 20. Linia de comandă Numărul maxim de caractere este de 128 (inclusiv numele programului). Tabel de operații - Dimensiune maximă. Mediu 32K.

Notă:

Cinci fluxuri standard sunt deschise automat (stdin, stdout, stderr, stdaux, stdprn), lăsând încă 15 fluxuri pentru nevoile programului.

D.4. Mesaje de eroare de linker.

Această secțiune descrie mesajele de eroare generate de linkerul LINK (linkerul de suprapunere Microsoft). Dacă apare o eroare fatală, linkerul se anulează. Mesajele de eroare fatală au următorul format:

Locație: eroare fatală L1xxx: text mesaj Erorile non-fatale identifică probleme în executabil. Linkerul LINK creează un executabil. Erorile non-fatale au următorul format:

locație: eroare L2xxx: text mesaj

Avertismentele indică, de asemenea, posibile probleme în fișierul executabil. Linkerul LINK creează un executabil. Avertismentele au următorul format:

locația de origine: avertisment L4xxx: textul mesajului

În aceste mesaje, originea este fișierul de intrare în care a fost găsită eroarea sau programul LINK dacă nu există niciun fișier de intrare. Dacă fișierul de intrare este un fișier .OBJ sau .LIB și numele modulului este cunoscut, numele modulului este cuprins între paranteze, așa cum se arată în exemplul următor:

SLIBC.LIB (fișier) MAIN.OBJ (main.c) TEXT.OBJ Erorile de linker pot apărea atât la invocarea lui implicit folosind comanda QCL, cât și la invocarea lui explicit folosind comanda LINK. Ele se pot întâmpla și atunci când compilați un program care are o listă de programe sau când creați un fișier executabil pe disc în Quick-C. Dacă apare o eroare de linker în mediul de programare Quick-C, Quick-C afișează mesajul: Eroare în timpul fazei de legătură Nu s-a produs fișierul .EXE. Apăsați ENTER pentru a vedea erorile de linker sau faceți clic pe butonul de comandă OK. Erorile de la ultima trecere a linkerului sunt stocate într-un fișier numit LINK.ERR. Următoarea listă conține erori care apar la conectarea fișierelor obiect folosind Microsoft Overlay Linker, LINK. Mesajul de eroare al linkerului L1001 „„ opțiunea „: numele opțiunii nu este clar”. Nu apare niciun nume unic de opțiune după indicatorul de opțiune (/). De exemplu, comanda Link / N main; va genera o eroare deoarece programul LINK nu poate determina care dintre opțiunile care încep cu litera „N” se referă. L1002 "" opțiune ": nume de opțiune nerecunoscut". Un caracter nerecunoscut apare în spatele indicatorului de opțiune (/), ca în exemplul următor: LINK / ABCDEF principal; L1004 "" opțiunea ": valoare numerică nevalidă". A fost specificată o valoare numerică nevalidă pentru una dintre opțiuni. De exemplu, unei opțiuni care necesită o valoare numerică i se dă un șir de caractere. L1006 "" opțiunea ": dimensiunea stivei depășește 65535 octeți". Dimensiunea specificată pentru stivă este mai mare de 65535 octeți. l1007 "" opțiunea ": numărul de întreruperi este mai mare de 255". A fost specificat un număr mai mare de 255 pentru opțiunea / OVERLAYINTERRUPT. L1008 "" opțiunea ": limită pentru numărul de segmente prea mare." A fost stabilită o limită de segment mai mare de 3072 (folosind opțiunea / SEGMENTS). L1009 "" opțiunea ": CPARMAXALLOC: valoare nevalidă". Numărul specificat în opțiunea / CPARMAXALLOC nu este în intervalul 1-65535. L1020 Nu sunt specificate module obiect. Nu sunt specificate nume de fișier obiect pentru linker. L1021 „Nu se pot atașa fișierele de corespondență”. Un fișier de mapare a ajuns în alt fișier de mapare. L1022 Fișierul de potrivire este prea lung. Linia din fișierul de mapare este mai lungă de 127 de caractere. L1023 Execuția încheiată de utilizator. Ai apăsat CONTROL + C. L1024 Imbricare paranteze din dreapta. Pe linia de comandă, conținutul suprapunerii a fost scris incorect. L1025 Cuibarea parantezei stângi. Pe linia de comandă, conținutul suprapunerii a fost scris incorect. L1026 Nepotrivire a parantezei din dreapta. Pe linia de comandă din specificația conținutului suprapunerii, lipsește paranteza din dreapta. L1027 Nepotrivire a parantezei din stânga. Paranteza din stânga lipsește din linia de comandă din specificația pentru conținutul suprapunerii. L1043 Tabelul de alocare memorie plin. Programul conține mai mult de 32768 de apeluri lungi, sărituri lungi sau alte indicații lungi. Încercați să înlocuiți legăturile lungi cu altele scurte, dacă este posibil, și reconstruiți modulul obiect L1045 „Prea multe intrări TYPDEF. Modulul obiect conține mai mult de 255 de intrări TYPDEF. Aceste intrări descriu variabile partajate. Această eroare poate apărea numai în programele create de Microsoft Quick-C compilator.sau alte compilatoare care acceptă variabile partajate.(TYPDEF este un termen de sistem de operare DOS. Este explicat în Manualul de referință al programatorului Microsoft MS-DOS sau în alte cărți de referință DOS.) L1046 Prea multe nume externe într-un singur modul „. Mai mult decât În modulul obiect sunt definite 1023 de nume externe. Împărțiți modulul în părți mai mici. L1047" Prea multe nume de grupuri, segmente, clase într-un singur modul. "Programul conține prea multe nume de grupuri, segmente, clase. Reduceți numărul de grupuri, segmente sau clase și reconstruiți fișierul obiect L1048 „Prea multe segmente într-un singur modul”.Mod obiect ul are peste 255 de segmente. Împărțiți modulul sau îmbinați segmentele. L1049 Prea multe segmente. Programul are mai mult decât numărul maxim de segmente permise. (opțiunea / SEGMENTS definește numărul maxim permis; implicit este 128). Repetați aspectul cu opțiunea / SEGMENTE cu numărul corespunzător de segmente. L1050 Prea multe grupuri într-un singur modul. LINK a găsit mai mult de 21 de definiții de grup (GRPDEF) într-un singur modul. Reduceți numărul de definiții de grup sau împărțiți modulul. (Definițiile grupurilor sunt explicate în MS-DOS Programmer's Reference și în alte cărți de referință DOS. L1051 Prea multe grupuri. Există mai mult de 20 de grupuri definite în program, fără a include DGROUP. Reduceți numărul de grupuri. L1052 Prea multe grupuri. multe biblioteci. „S-a încercat să se conecteze mai mult de 32 de biblioteci. Îmbinați biblioteci sau utilizați module care necesită mai puține biblioteci. L1053 „Depășire tabel de nume. „ , nume de segmente, grupuri, clase, fișiere). Combinați module sau segmente și reconstruiți fișierele obiect. Eliminați cât mai multe nume globale posibil. L1054 Numărul necesar de segmente este prea mare. Linker-ul nu are suficientă memorie pentru a găzdui un tabel care descrie numărul de segmente necesare (valoarea implicită este 128 sau valoarea specificată în opțiunea / SEGMENTS). Reconectați din nou, utilizând opțiunea / SEGMENTS pentru a specifica mai puține segmente (de exemplu, 64 dacă a fost utilizată anterior valoarea implicită) sau eliberați puțină memorie prin eliminarea TSR-urilor sau a sarcinilor paralele. L1056 Prea multe suprapuneri. Cu siguranță există peste 63 de suprapuneri în program. L1057 Înregistrare de date prea mare. Înregistrarea LIDATA (în unitatea obiect) conține mai mult de 1.024 de octeți de date. Aceasta este o eroare a traducătorului. (LIDATA este un termen de sistem de operare DOS și poate fi găsit în Microsoft MS-DOS Programmer's Guide sau în alte cărți de referință DOS pentru o explicație. Rețineți care traducător (compilator sau asamblator) a creat modulul obiect incorect și în ce circumstanțe. Vă rugăm să raportați acest lucru eroare la utilizarea formularului de cerere de asistență pentru produs aflat la sfârșitul acestui manual. L1070 „„ nume „: dimensiunea segmentului este mai mare de 64K”. Segmentul specificat conține mai mult de 64K de cod sau date. Repetați compilarea și conectarea în modelul de memorie mare L1071 " Segmentul _TEXT este mai mare de 65520 octeți” Această eroare se poate întâmpla cel mai probabil numai în programele C ale modelului cu memorie mică, dar poate apărea dacă orice program cu un segment numit _TEXT este legat de comanda LINK cu opțiunea /DOSSEG.Small programele de memorie C trebuie să rezerve adresele de cod 0 și 1; în scopuri de aliniere această limită este mărită la 16. L1072 „Aria totală este mai mare de 65536 octeți”. Programul are peste 64 de variabile comune. Această eroare nu poate apărea în fișierele obiect generate folosind Microsoft Macro Assembler (MASM). Apare doar în programele compilatoare care acceptă variabile partajate. L1080 Nu se poate deschide fișierul de listare. Discul sau directorul rădăcină este plin. Ștergeți sau mutați fișiere pentru a elibera spațiu. L1081 Depășire de scriere a fișierului executabil. Discul pe care este scris fișierul executabil .EXE este plin. Eliberați spațiu pe disc și reconectați. L1083 Nu se poate deschide fișierul executabil. Discul sau directorul rădăcină este plin. Ștergeți sau mutați fișiere pentru a elibera spațiu. L1084 „Nu se poate crea fișierul temporar”. Discul sau directorul rădăcină este plin. Eliberați spațiu pe disc și reconectați. L1085 Nu se poate deschide fișierul temporar. Discul sau directorul rădăcină este plin. Ștergeți sau mutați fișiere pentru a elibera spațiu. L1086 „Nu există suficient fișier temporar”. Vă rugăm să rețineți circumstanțele acestei situații și să contactați Microsoft Corporation utilizând formularul de Solicitare de asistență pentru produs de la sfârșitul acestui manual. L1087 Sfârșitul neașteptat al fișierului temporar. Discul cu fișierul de ieșire temporar al linkerului a fost șters. L1088 Depășire de scriere a fișierului de listare. Când scrieți un fișier de listă pe disc, discul este plin. Eliberați spațiu pe disc și reconectați. L1089 „„ nume de fișier „: Nu se poate deschide fișierul de mapare”. LINK nu poate găsi fișierul de mapare specificat. De obicei, aceasta este o greșeală de scriere atunci când specificați numele fișierului. L1090 ​​„Nu se poate redeschide fișierul de listă” La cerere, discul original nu a fost înlocuit. Repetați aspectul. L1091 „Sfârșitul neașteptat al fișierului în bibliotecă”. Discul care conține biblioteca a fost probabil șters. Instalați discul care conține biblioteca și reconectați. L1093 "" nume de fișier ": fișierul obiect nu a fost găsit". Linkerul nu poate găsi fișierul obiect specificat. Dați numele corect al fișierului obiect și linkul din nou. L1101 Modul obiect nevalid. Unul dintre modulele obiect este invalid. Dacă această eroare apare după recompilare, vă rugăm să contactați Microsoft Corporation utilizând formularul de solicitare de asistență pentru produs atașat la sfârșitul acestui manual. L1102 Sfârșit neașteptat al fișierului. A fost găsit un format nevalid pentru bibliotecă. L1103 Încercarea de a accesa date în afara granițelor segmentului. Scrierea specificată în modulul obiect este continuată dincolo de limitele segmentului. Aceasta este o eroare a traducătorului. Rețineți care traducător (compilator sau asamblator) a creat modulul obiect incorect și circumstanțele în care a fost creat. Vă rugăm să raportați această situație către Microsoft Corporation utilizând formularul de Solicitare de asistență pentru produs din partea din spate a acestui manual. L1104 "" nume de fișier ": bibliotecă nevalidă". Fișierul specificat nu este un fișier de bibliotecă valid. Această eroare închide programul LINK. L1113 COMDEF nerezolvat; eroare de sistem. Notați circumstanțele care înconjoară această defecțiune și contactați Microsoft Corporation utilizând formularul de Solicitare de asistență pentru produs din spatele acestui manual. L1114 „Fișierul nu este valabil pentru / EXEPACK; reconectați fără opțiunea / EXEPACK”. Într-un program compilat, dimensiunea imaginii de boot comprimate plus antetul este mai mare decât imaginea de boot dezambalată. Reconectați cu opțiunea / EXEPACK. L2001 „Înregistrare remediere fără date”. Înregistrarea FIXUPP nu are o înregistrare de date imediat anterioară. Aceasta este probabil o eroare a compilatorului. (Pentru detalii despre FIXUPP, consultați Ghidul de referință al programatorului Microsoft MS-DOS). L2002 „Depășirea înregistrării reparației la apel aproape” număr „frame seg” segname „target seg” segname „target offset” număr „” Următoarele condiții pot provoca această eroare: -Programul este compilat într-un model de memorie mică cu opțiunea / NT . -Grupul are peste 64K. -Programul conține sărituri scurte între segmente sau apeluri scurte între segmente. -Numele articolului de date din program nu corespunde unei proceduri din biblioteca de proceduri conectată la link. -Declarația EXTRN din fișierul sursă în yachyke assembler a apărut în corpul segmentului, ca în exemplul următor: cod SEGMENT public "CODE" EXTRN main: far start PROC far call main ret start Cod ENDP ENDP Este preferată următoarea construcție : EXTRN principal: cod departe SEGMENT public „COD” start PROC apel departe principal start cod ENDP ENDS Suprascrie fișierul original și reconstruiește fișierul obiect. (Pentru mai multe informații despre segmentul de cadru și segmentul țintă, consultați Manualul de referință al programatorului Microsoft MS-DOS.) L2003 Distant Call to Own Segment Data. Apelurile la distanță lungă către propriile date de segment nu sunt permise. L2005 „Tipul de remediere nu este acceptat”. S-a dovedit că tipul de remediere nu este acceptat de linkerul Microsoft. Aceasta este probabil o eroare a compilatorului. Vă rugăm să rețineți circumstanțele acestei erori și să le raportați către Microsoft Corporation utilizând formularul „Solicitare asistență pentru produs” aflat la sfârșitul acestui manual. L2012 „„ nume „: nepotrivire a dimensiunii elementului de matrice”. O matrice comună „departe” a fost descrisă cu două sau mai multe dimensiuni diferite de elemente de matrice (de exemplu, prima dată matricea a fost descrisă ca o matrice de caractere, iar a doua oară, ca o matrice de numere reale). Înregistrare LIDATA L2013 prea mare. Intrarea LIDATA într-o unitate de obiect este mai mare de 512 octeți, dimensiunea maximă permisă. Aceasta este o eroare a compilatorului. Vă rugăm să raportați la Microsoft condițiile pentru această eroare utilizând formularul de Solicitare asistență pentru produs de la sfârșitul acestui manual. L2024 "" nume ": nume deja definit". Unul dintre numele speciale de suprapunere necesare pentru a suporta suprapuneri a fost definit în fișierul obiect. L2025 "" nume ": nume definit de mai multe ori". Eliminați definițiile de nume inutile din fișierul obiect. L2029 Legături externe nerezolvate. În unul sau mai multe module, unul sau mai multe nume sunt descrise ca externe, dar nu au fost definite ca publice în niciunul dintre module sau biblioteci. După mesaj, apare o listă de xref-uri nerezolvate, așa cum se arată în exemplul următor: EXIT în fișier(e): MAIN.OBJ (main.for) OPEN în fișier(e): MAIN.OBJ (main.for) Numele care merge înainte de „în fișier(e)” este un nume extern nerezolvat. Următoarea linie conține o listă de module obiect care au referințe la numele dat. Acest mesaj și listă sunt de asemenea scrise în fișierul hărții de memorie, dacă există unul. L2041 Stack plus date depășește 64K. Dimensiunea totală a segmentului de stivă al programului plus DGROUP depășește 64K; ca urmare, programul nu se încarcă corect. L2043 „Adresa de pornire__ aulstart nu a fost găsită”. Dacă construiți biblioteca rapidă folosind opțiunea / Q, linkerul necesită numele __aulstart specificat ca adresă de început. L4003 Apel ilegal: offset offset. Această eroare poate fi cauzată de compilarea programului într-un model de memorie mică cu opțiunea / NT. L4012 „/ Opțiunea HIGH anulează / EXEPACK”. Opțiunile / HIGH și / EXEPACK nu pot fi utilizate în același timp. L4015 „/ Opțiunea CODEVIEW înlocuiește / DSALLOCATE”. Opțiunile / CODEVIEW și / DSALLOCATE nu pot fi utilizate în același timp. L4016 „Opțiunea / CODEVIEW înlocuiește / EXEPACK”. Opțiunile / CODEVIEW și / EXEPACK nu pot fi utilizate în același timp. L4020 "" nume ": dimensiunea segmentului de cod este mai mare de 65500". Un segment de cod cu lungimea de 65501-65536 octeți poate fi procesat incorect pe un procesor Intel 80286. L4021 Fără segment de stivă. Programul nu are un segment de stivă definit cu tipul STACK. Acest mesaj nu va apărea la procesarea modulelor compilate cu compilatorul Microsoft Quick-C, dar nu cu asamblatorul Macro. De obicei, fiecare program ar trebui să aibă un segment de stivă cu tipul de concatenare STACK. Dacă aveți motive speciale pentru a nu defini o stivă sau pentru a defini una fără un tip de alăturare STACK, puteți ignora acest mesaj. Acest mesaj poate fi primit și la conectarea cu versiunile LINK 2.40 și anterioare, deoarece acești linkeri se uită la biblioteci o singură dată. L4031 "" nume ": segment descris în mai multe grupuri." Segmentul a fost descris ca membru a două grupuri diferite. Corectați fișierul original și reconstruiți fișierele obiect. L4034 „Mai mult de 239 de segmente suprapuse; cele suplimentare sunt în rădăcină”. Suprapunerile nu pot declara mai mult de 239 de segmente de cod. Toate segmentele peste această limită sunt plasate în rădăcină. L4045 „Nume fișier de ieșire” nume „”. Linker-ul a afișat numele fișierului de ieșire implicit în promptul „Run fișier”, dar deoarece a fost folosită opțiunea / Q, numele fișierului de ieșire a fost schimbat. L4050 Prea multe nume globale. Opțiunea / MAP a fost folosită pentru a obține o listă sortată de nume globale în fișierul de alocare a memoriei, dar au fost specificate prea multe nume pentru sortare (mai mult de 2048 de nume în mod implicit). Repetați conectarea cu opțiunea / MAP: număr. Linkerul produce o listă nesortată de nume globale. L4051 "" nume de fișier ": biblioteca nu poate fi găsită". Linkerul nu poate găsi fișierul specificat. Introduceți un nou nume, o nouă specificație de rută sau ambele. L4053 „VM.TMP: Nume fișier nevalid; Ignorat”. Numele VM.TMP a apărut ca nume de fișier obiect. Redenumiți fișierul și reconectați. L4054 "" nume de fișier ": fișierul nu poate fi găsit". Linkerul nu poate găsi fișierul specificat. Introduceți un nou nume de fișier, o nouă specificație de rută sau ambele.

D.5 Mesaje de eroare a utilitarului LIB

Mesajele de eroare generate de managerul de bibliotecă, programul LIB, au unul dintre următoarele formate: (nume fișier | LIB): eroare fatală U1xxx: text mesaj (nume fișier | LIB): eroare U2xxx: text mesaj (nume fișier | LIB): avertisment U4xxx: mesaje text Mesajul începe cu numele fișierului de intrare (nume fișier), dacă acesta există, sau numele utilitarului. Dacă este posibil, programul LIB imprimă un avertisment și continuă. În unele cazuri, erorile sunt ireparabile și utilitarul LIB nu mai funcționează. Utilitarul LIB poate afișa următoarele mesaje: Număr mesajele de eroare ale utilitarului LIB U1150 „Dimensiunea paginii este prea mică”. Dimensiunea paginii bibliotecii de intrare este prea mică, ceea ce înseamnă că fișierul .LIB de intrare este nevalid. U1151 Eroare de sintaxă: specificație de fișier nevalidă. Un operator de comandă, cum ar fi semnul minus (-) a fost specificat fără un nume de modul corespunzător. U1152 Eroare de sintaxă: Numele opțiunii a fost omis. A fost specificată o opțiune oblică (/) fără ca o opțiune să o urmeze. U1153 Eroare de sintaxă: Valoarea opțiunii a fost omisă. Opțiunea / PAGESIZE a fost specificată fără nicio valoare corespunzătoare. U1154 Opțiune necunoscută. S-a oferit o opțiune necunoscută. Programul LIB recunoaște în prezent doar opțiunile / PAGESIZE. U1155 Eroare de sintaxă: intrare nevalidă. Această comandă nu urmează sintaxa corectă a utilitarului LIB descrisă în Capitolul 10, „Crearea rapidă a bibliotecilor și a bibliotecilor autonome”. U1156 Eroare de sintaxă. Această comandă nu urmează sintaxa corectă a utilitarului LIB descrisă în Capitolul 10, „Crearea rapidă a bibliotecilor și a bibliotecilor autonome”. U1157 Lipsește caracterul virgulă sau linie nouă. Pe linia de comandă era de așteptat o virgulă sau întoarcerea căruciorului și nu a apărut. Aceasta poate însemna o virgulă inadvertentă, ca în următoarea linie: LIB math.lib, -mod1 + mod2; Această linie ar trebui să arate astfel: LIB math.lib -mod1 + mod2; U1158 Retur cărucior omis. Fie răspunsul la interogarea „Bibliotecă de ieșire”, fie ultima linie din fișierul de mapare folosit pentru a rula programul LIB, nu se termină cu o întoarcere de transport. U1161 Nu se poate redenumi vechea bibliotecă. Programul LIB nu poate redenumi o bibliotecă veche cu extensia .BAK, deoarece versiunea .BAK există deja cu protecție numai pentru citire. Schimbați protecția versiunii vechi. BAK. U1162 „Biblioteca nu poate fi redeschisă”. O bibliotecă veche nu poate fi redeschisă după ce a fost redenumită cu extensia. BAK. U1163 Eroare la scrierea fișierului de referințe încrucișate. Discul sau directorul rădăcină este plin. Ștergeți sau recompilați fișierele pentru a elibera spațiu. U1170 Prea multe nume. În fișierul bibliotecii au apărut peste 4609 nume. U1171 Memoria insuficientă. Programul LIB nu are suficientă memorie pentru a rula. Eliminați programele paralele și TSR și încercați din nou sau măriți memoria. U1172 Nu este suficientă memorie virtuală. Observați circumstanțele acestei defecțiuni și notificați Microsoft Corporation utilizând formularul „Solicitare asistență pentru produs” aflat la sfârșitul acestui manual. U1173 Eroare de sistem. Vă rugăm să rețineți circumstanțele acestei defecțiuni și să notificați Microsoft Corporation utilizând formularul „Solicitare asistență pentru produs” aflat la sfârșitul acestui manual. U1174 „marca: nepublicat”. Observați circumstanțele acestei defecțiuni și notificați Microsoft Corporation utilizând formularul „Solicitare asistență pentru produs” aflat la sfârșitul acestui manual. U1175 „gratuit: nepublicat”. Notați circumstanțele acestei defecțiuni și notificați Microsoft Corporation utilizând formularul „Solicitare asistență pentru produs” din spatele acestui manual. U1180 Scrierea în fișierul preluat a eșuat. Discul sau directorul rădăcină este plin. Ștergeți sau mutați fișiere pentru a elibera spațiu. U1181 Scrierea în fișierul bibliotecă a eșuat. Discul sau directorul rădăcină este plin. Ștergeți sau mutați fișiere pentru a elibera spațiu. U1182 „„ nume de fișier „: Nu se poate crea fișierul extractibil”. Discul sau directorul rădăcină este plin sau fișierul extractibil specificat există deja cu protecție numai pentru citire. Eliberați spațiu pe disc sau modificați tipul de protecție a fișierelor. U1183 Nu se poate deschide fișierul de mapare. Fișierul de mapare dat nu a fost găsit. U1184 Sfârșitul neașteptat al fișierului la intrarea comenzii. A fost întâlnit un caracter de sfârșit de fișier în răspunsul la cerere. U1185 Nu se poate crea o nouă bibliotecă. Discul sau directorul rădăcină este plin sau fișierul bibliotecă există deja cu protecție numai pentru citire. Eliberați spațiu pe disc sau modificați atributele de securitate ale fișierului bibliotecă. U1186 Eroare la scrierea bibliotecii noi. Discul sau directorul rădăcină este plin. Ștergeți sau mutați fișiere pentru a elibera spațiu. U1187 „Nu se poate deschide VM.TMP”. Discul sau directorul rădăcină este plin. U1188 „Nu se poate scrie pe VM”. Vă rugăm să rețineți circumstanțele acestei defecțiuni și să notificați Microsoft Corporation utilizând Solicitarea de asistență pentru produs de la sfârșitul acestui manual. U1189 Nu se poate citi din VM. Vă rugăm să fiți conștienți de circumstanțele din jurul acestei erori și să contactați Microsoft Corporation utilizând Solicitarea de asistență pentru produs de la sfârșitul acestui manual. U1190 Întrerupt de utilizator. Ați întrerupt programul LIB înainte de a ieși. U1200 „„ nume „: antet bibliotecă nevalid”. Fișierul bibliotecii de intrare nu este în formatul corect. Fie nu este un fișier de bibliotecă, fie este corupt. U1203 "" nume ": modul obiect nevalid la adresa apropiată". Un modul numit „nume” este un modul obiect nevalid. U2152 „„ nume de fișier „: nu se poate crea lista”. Discul sau directorul este plin sau fișierul de referință încrucișată există deja cu protecție numai pentru citire. Eliberați spațiu pe disc sau modificați atributele fișierului. U2155 "" modulename ": modulul nu a fost găsit în bibliotecă; ignorat". Modulul specificat nu a fost găsit în biblioteca de intrare U2157 "" nume de fișier ": fișierul nu a putut fi accesat." Programul LIB nu a putut deschide fișierul specificat. U2158 "" libraryname ": antet bibliotecă nevalid; fișierul este ignorat." Biblioteca de intrare nu este în formatul corect. U2159 "" nume de fișier ": format de număr hexadecimal nevalid; fișierul este ignorat." Octetul de identificare al cuvântului „hexnumber” al acestui fișier nu este de unul dintre următoarele tipuri recunoscute: bibliotecă Microsoft, bibliotecă Intel, fișier obiect Microsoft, arhivă XENIX. U4150 "" modulname ": anularea modulului este ignorată." Un modul a fost definit pentru a fi adăugat la bibliotecă, dar un modul cu același nume este deja în bibliotecă. Sau, un modul cu același nume a fost plasat în bibliotecă de două ori. U4151 Simbol "" (nume modul): redefinirea numelui ignorată. "Numele specificat este definit în mai multe module. U4153" "număr": dimensiunea paginii este prea mică; ignorat ". Valoarea specificată în opțiunea / PAGESIZE este mai mică de 16. U4156" "libraryname": specificația bibliotecii de ieșire este ignorată ". Pe lângă noile nume de bibliotecă, a fost specificată o bibliotecă de ieșire. De exemplu, prin setarea : LIB new.lib + one.obj, new .lst, new.lib unde new.lib nu există încă - veți primi o eroare.

D.6. MAKE mesaje de eroare utilitare.

Erorile afișate în timpul Microsoft Software Support Utility (MAKE) sunt în unul dintre următoarele formate: (nume fișier | MAKE): eroare fatală U1xxx: text mesaj (nume fișier | MAKE): avertisment U4xxx: text mesaj Mesajele încep cu numele fișierului de intrare ( filename ), dacă există sau cu numele utilitarului. Dacă este posibil, MAKE imprimă un avertisment și continuă. În unele cazuri, erorile sunt fatale și utilitarul MAKE nu va mai funcționa. Mesajele generate de utilitarul MAKE sunt listate în această secțiune. Mesaj de eroare al utilitarului MAKE numărul U1001 „Macro este mai mare decât numărul”. A fost definită o macrocomandă care are o valoare a șirului mai mare decât un număr specificat, permițând lungimea maximă. Încercați să rescrieți fișierul descris de utilitarul MAKE și împărțiți macrocomanda în două mai mici. U1002 Macrofon recursiv infinit. Un apel de macrocomandă a fost definit ca în exemplul următor: A = $ (B) B = $ (C) C = $ (A) U1003 Memorie lipsită. MAKE a rămas fără memorie în timp ce procesa un fișier de descriere. Încercați să reduceți dimensiunea fișierului de descriere MAKE reorganizându-l sau împărțindu-l în altele mai mici. U1004 Eroare de sintaxă: Numele macrocomenzii lipsește. Fișierul descriptor al utilitarului MAKE conține macrocomenzi fără partea stângă (adică o linie care începe cu =). U1005 Eroare de sintaxă: lipsesc două puncte. Linia care ar trebui să conțină fișierul de ieșire / fișierul de intrare lipsește două puncte care separă fișierul de ieșire și fișierul de intrare. MAKE necesită ca orice linie urmată de o linie goală să fie considerată o linie de fișier de ieșire / intrare. U1006 "" targetname ": extinderea macrocomenzii este mai mare decât" număr "". Extinderea macro-ului plus lungimea oricărui șir cu care poate fi concatenat este mai mare decât numărul specificat. Încercați să suprascrieți fișierul cu descrierile utilitarului MAKE prin deblocarea macrocomenzii în două mai puține. U1007 „Multe surse”. Regula de inferență a fost definită de mai multe ori. U1008 "" nume ": Nu se poate găsi fișierul sau directorul". Fișierul sau directorul specificat nu a putut fi găsit. U1009 "" comandă ": lista de argumente prea lungă". Linia de comandă din fișierul de descriere a utilitarului MAKE este mai lungă de 128 de octeți, care este maximul permis în DOS. Rescrieți comenzile pentru a scurta lista de argumente. U1010 "" nume de fișier ": Acces refuzat." Fișierul definit ca „nume fișier” -are un atribut numai pentru citire. U1011 „nume fișier”: memorie insuficientă „MAKE nu are memorie pentru a rula programul. U1012 „„ nume de fișier „: eroare necunoscută”. Vă rugăm să rețineți circumstanțele acestei erori și să le raportați către Microsoft Corporation utilizând Solicitarea de asistență pentru produs de la sfârșitul acestui manual. U1013 "" comandă ": eroare cod de eroare". Unul dintre programele sau comenzile invocate în fișierul descriptor al utilitarului MAKE a ieșit cu un cod de ieșire diferit de zero. U1015 "" fișier ": fișierul țintă nu există." De obicei, acest lucru nu înseamnă o greșeală. Acest mesaj avertizează utilizatorul că fișierul țintă nu există. Utilitarul MAKE execută orice comenzi specificate în blocul de declarare, deoarece în majoritatea cazurilor fișierul de ieșire este generat de ultima comandă din fișierul de descriere a utilitarului MAKE. U4000 „„ nume de fișier „: nu există”. De obicei, acest mesaj nu indică o eroare. Avertizează utilizatorul că fișierul specificat nu există.MAKE execută toate comenzile specificate în bloc, deoarece în cele mai multe cazuri fișierul lipsă va fi creat de comenzile ulterioare din fișierul MAKE. U4001 Fișierul dependent „nume fișier” nu există; fișierul țintă „filena me” nu este în curs de construire.” MAKE nu poate continua deoarece fișierul de intrare necesar nu există. Asigurați-vă că toate numele fișierelor sunt prezente și că toate sunt descrise corect în fișierul de descriere a utilitarului MAKE. U4013 "" comandă ": eroare cod de eroare (ignorat)". Unul dintre programele sau comenzile invocate în fișierul de descriere a utilitarului MAKE a returnat un cod de eroare diferit de zero în timp ce MAKE rula cu opțiunea /I. Erorile sunt ignorate și utilitarul continuă să ruleze. U4014 „Sintaxă: opțiuni pentru fișiere de opțiuni = Utilitarul MAKE a fost invocat incorect. Reporniți utilitarul utilizând sintaxa furnizată în mesaj: opțiunile de realizare [nume-valoare...] opțiuni de fișier =.

Ți-a plăcut articolul? Împărtășește-l