C++ Builder - program crashes on exit

5 отговора 93 прегледа
#1

C++ Builder - program crashes on exit

Imam programa na C++ Builder 6, kojato ima 1 forma i 1 thread, koito pravi comunikacia po COM port.
Pri izlizane ot programata tja crashva.
Loshoto e che crashva ne na njakoi red ot neq, ami wuw bibliotekata forms.hpp.
936 red
/* TCustomForm.Destroy */ inline __fastcall virtual ~TForm(void) { }

Kak moga da razbera koi tochno control ili forma ne iska da se unishtoji? I kakwo moga da napravja za da ne crashva?


Редактирано от naki на

Отговор
в отговор на naki #2

Виж за т'ва

Възможно е по ком порт-а да идват някакви отговори накрая, а ком обекта ти вече да е унищожен. Имах подобен проблем, и преди да дестрой-на ком-а му дадох слийп(няколко) "sleep" и се оправи, а иначе ми даваше "too many consecutive (?)" ексепшънс, или нещо. Извън средата като се пуснеше приложението се показваше онова с "we are sorry for the inconveniece".

-------------
Special killer double trouble triple extra nicotine monster!

Редактирано от z_free на

Отговор
в отговор на naki #3

Re: C++ Builder - program crashes on exit

Kakva biblioteka polzvash za COM-a? Ako e kadurno napisana trqbva da zatvarq COM-a korektno i dori i da idva neshto zakusnqlo da ne pravi problemi (vij CreateFile API-to ). Ako te sumnqva nqkoj konkreten komponent kojto se suzdava i unishtojava avtomatichno ot formata, prosto go napravi da se suzdava i unishtojava ot tvoq kod, dinamichno i sloji breakpoint kudeto vikash destruktora. Inache za avtomatichno unishtojavanire moje da stane sus suzdavane na OnDestroy handler i tam da mu slojish breakpoint i da prosledish natatuka kakvo stava.

Отговор
в отговор на d #4

Ami vsushtnost...

... az go opravih problema.
Biblioteka ne polzvam, samo Windowskite funkcii -
CreateFile, ReadFile, WriteFile,Get/SetCommState,Get/SetCommTimeouts,PurgeComm.
A problema se reshi po mnogo stranen nachin: napravih nov proekt, kopirah koda w nego, a njakoi ot formite daje ne copirah coda, a celite filove, i sega novia proekt, kojto e 1:1 sus staria, raboti i ne crashva.
Taka i ne razbrah zashto crashva staria, moje bi nekoi DFM ili nekoi drug slujeben file na formata da se e omazal.
Koi znae...


Отговор
в отговор на naki #5

Re: Ami vsushtnost...

Много е зле Ц Буилдер-а в т'ва отношение... Бъгава работа

Отговор
в отговор на naki #6

Re: Ami vsushtnost...

CBuildera kato kompilator i kato razshirenie na C++ e super, ima mnogo suvremenni idei, v obshti linii razshireniqta na ezika sa opit da se osuvremeni edin dosta ostarql i veche konservativen ezik. Kato primer shte dam tova che sa vkrali PME (property, method, event) modela kojto vsichki suvremenni ezici pritejavat. Sushto i nalichieto na 'finally' koeto pravi logikata i koda mnogo po-elegantni i nadejdni ot fokusite koito izpolzvat programistite na klasichesko C++. No komisiqta po standartizirane na C++ taka i ne se reshi da standartizira (po neponqtno za mnogo hora prichini) 'finally' klauzata.
Obache kato biblioteki (VCL) sum suglasen che CBuildera e pulna tragediq. No sushtestvivat i drugi biblioteki, dostatuchno pulni i universalni, na vsichkoto otgore i cross-platform i v sushtoto vreme izpolzvashti nativa API. Govorq za wxWindows

Отговор