Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

thread exited with code <>0

[es] :: C/C++ programiranje :: thread exited with code <>0

[ Pregleda: 2975 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

darkosos
Darko Šoš
Beograd

Član broj: 5053
Poruke: 1131
*.ptt.yu



+64 Profil

icon thread exited with code <>017.01.2003. u 22:21 - pre 258 meseci
Da li poruka tipa The thread xxxx has exited with code #(<>0) obavezno znaci i nekakvu gresku u programu. U pitanju je MFC aplikacija i int sa kojim program izlazi je generisan negde u dubinama MFC koda.
Jos nesto - da li je niko primetio da zezanje u dialog editoru sa cestim postavljanjem i brisanjem raznih kontrola moze da zbuni MSVC++, pa pocne da brljavi ?
 
Odgovor na temu

6544616a006e
Nadej Kilec
Bukulja

Član broj: 10080
Poruke: 44
*.telia.com

Sajt: www.gnu.org


Profil

icon Re: thread exited with code <>003.05.2003. u 02:42 - pre 255 meseci
Ako je po izlazu rezultat različit od nule onda je garant neka greška posredi!
---
GNU's Not UNIX
 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.oak.inreach.net



+1001 Profil

icon Re: thread exited with code <>004.05.2003. u 20:05 - pre 255 meseci
Prvo pitanje:
nije nista neobicno da thread-ovi unutar MFC biblioteka kod sasvim prostih aplikacija i prostih akcija izlaze sa non-zero vrednostima.
Najcesce vrednosti: -1, -2.

Prost slucaj: napravi u VisualStudio-u dialog-based aplikaciju. Kompajliraj je bez ikakvih promena, startuj i izadji pritiskom na Esc. Videces da je return value jednog thread-a 27 (0x1B) (a i cele aplikacije). Ako pokusas da izadjes pritiskom na 'X' dugme u gornjem desnom uglu, thread (i cela aplikacija) ce izaci sa kodom 0x2.

Iako te return vrednosti (sudeci po Tools->ErrorLookup) imaju vrlo preteca znacenja
(0x1B = The drive cannot find the sector requested, 0x2 = The system cannot find the file specified), to nije nesto sto treba tebe da sekira. Ako MFC dizajneri mogu da zive sa time, mozes i ti.

Znak mnogo ozbiljnijeg dizajn problema (koji je uglavnom tvoja briga) su exceptions koje sibaju kad zatvoris aplikaciju na nedovoljno dobar nacin - naprimer, izbrises buffer, a jos uvek zivi thread pokusava read/write iz tog istog buffer-a.
Takodje, memory leaks su tvoja briga - u destruktoru ili u WM_DESTROY handler-u moras da dealociras svu memoriju koju si alocirao.

Drugo pitanje:
Ako si stavio kontrolu (dugme, combobox, listbox...) na dijalog, i dodelio promenljivu toj kontroli, onda puko brisanje kontrole u resource editoru nije dovoljno, cak je i vrlo nezgodno ako si ostavio definisane kontrol/value promenljive vezane za tu kontrolu. Ako kompajliras/startujes kod, pocece da iskacu exceptions.

Najbolje je prvo otici u ControlWizzard (Ctrl-W) i obrisati sve promenljive vezane za datu kontrolu, po tek onda je izbrisati sa resource editora. Ako si se prevario pa prvo izbrisao kontrolu u resource editoru, nije strasno - ista stvar moze i rucno - odes u header fajl, pa izbrises promenljivu, probas da kompajliras, pa onda ides na svaku liniju u source fajlu gde je prijavljena greska, pa brises/modifikujes.

 
Odgovor na temu

[es] :: C/C++ programiranje :: thread exited with code <>0

[ Pregleda: 2975 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.