| delorie.com/archives/browse.cgi | search |
| X-Authentication-Warning: | delorie.com: mailnull set sender to djgpp-workers-bounces using -f |
| Sender: | salvador AT delorie DOT com |
| Message-ID: | <3C3314DF.FC34DB@inti.gov.ar> |
| Date: | Wed, 02 Jan 2002 11:10:39 -0300 |
| From: | salvador <salvador AT inti DOT gov DOT ar> |
| Organization: | INTI |
| X-Mailer: | Mozilla 4.77 [en] (X11; U; Linux 2.2.19 i686) |
| X-Accept-Language: | es-AR, en, es |
| MIME-Version: | 1.0 |
| To: | djgpp-workers AT delorie DOT com |
| CC: | Charles Sandmann <sandmann AT clio DOT rice DOT edu>, |
| Andris Pavenis <pavenis AT lanet DOT lv>, Robert Hvhne <robert DOT hoehne AT gmx DOT net> | |
| Subject: | Re: NTVDM Error and TVision. |
| References: | <10112311737 DOT AA21576 AT clio DOT rice DOT edu> <001301c1929e$5f4e9c80$0102a8c0 AT acceleron> |
| Reply-To: | djgpp-workers AT delorie DOT com |
Andrew Cottrell wrote:
[snip]
> I traced the problem to something to do with the destroy() code. I can
> reproduce the NTVDM error every time I run the example below in a window
> instead of full screen mode. I tried it 10 times in a row and more times
> than I can count over the last two days in trying to find the real cause..
[snip]
> int main()
> {
> #if 0 // Change to 1 and app will always crash in window mode
> TMyApp myApp;
> myApp.run();
> #else
It looks like some problem related to destructors. I agree with Eli about the
need of a trace, the code you show (destroy) doesn't really show anything. The
shutDown methode and destructors should be studied.
I think the most dangerous thing you'll find in a TV application is the
deinitialization of low level stuff. When you destroy the application two
important (and potentially problematic) things happends:
1) The EventQueue is deinitialized, it triggers a mouse deinitialization. Did
you verified that my code that detects NT works under XP? See
classes/thwmouse.cc look for Windows_NT. You should also try forcing the
library to avoid hooking the mouse interrupt, it proved to be dangerous under
NT. Try with use_mouse_handler=0 by hand.
2) The Screen is deinitialized, it makes some BIOS calls that we found
dangerous because a lot of manufacturers fails to implement correctly. You
should try disabling the Screen deinitialization. Try editing
classes/tscreen.cc to do nothing in the ~TScreen destructor. Also try making
suspend() do nothing.
SET
--
Salvador Eduardo Tropea (SET). (Electronics Engineer)
Visit my home page: http://welcome.to/SetSoft or
http://www.geocities.com/SiliconValley/Vista/6552/
Alternative e-mail: set AT computer DOT org set AT ieee DOT org
Address: Curapaligue 2124, Caseros, 3 de Febrero
Buenos Aires, (1678), ARGENTINA Phone: +(5411) 4759 0013
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |