Hello I have an application that works perfectly in Windows 98 machines, but is incompatible with Windows 2000 machines. On some Win2k boxes it gives a "Program Error" and quits. On others, it loads up ok, but there are some unexpected GUI problems. I was told once that the problem could be uninitialized data, but I do not think that is the case. Could it be the API that I use that causes the problem? If needed, I can post my imports here. Thanks. comrade
Posted on 2000-11-13 19:20:00 by comrade
Hello, I have had the same problem with Microsoft's .NET operating system (Whistler). I was going to submit a bug report but I noticed it wasn't the problem with just Whistler. Sometimes I will have edit controls missing in 2K when they show up in Win98. Weird.
Posted on 2000-11-13 22:11:00 by drsmith
Uninitialized data in 2K is a MAJOR problem, and so are the registers - to confirm all is ok you might like to push ebx, esi, edi before the call and restore them afterwords, and ALSO set the variables used to 0 or 1 or whatever as Win2K is pedantic that way. Also make sure that your register variables are set to 0 for the high parts (eg. you may have al or ax set to a value, but the msb of eax could be junk and in 2K it will crash when used, under 9x it doesnt care...) James
Posted on 2000-11-14 16:32:00 by James
Thank you. I got the part about preserving ebx, esi and edi. But what do you mean to set the high parts of my register variables to 0? And how would I go about fixing the "uninitialized data" problem? Initialize it all to 0? Please reply. comrade
Posted on 2000-11-18 21:07:00 by comrade
Same errors in WinNt, Win2k... Memory could not be "read".. How to escape this? Pls help!
Posted on 2000-12-30 02:43:00 by isumenko
Yeah just use "xor eax, eax" etc. and that inits the msb and lsb of eax to 0...
Posted on 2000-12-30 21:34:00 by James
Helow: I've had some incompatibility problems but almost ever I've finded solution. Problems with GUI frecuently come because I forget to return NULL to non procesed messages in dialog box procedures. The "read" or "write" bugs generaly are produced when I forget to save esi, edi or ebx registers in some callback procedures. Problems writing in remote process I solutioned changing access rights with VirtualProtectEx. But I still have problems using VirtualQueryEx. Anybody knows if this function works in Windows 2000? greetings n u M I T_o r
Posted on 2000-12-31 12:25:00 by n u M I T_o r
Don't know anything about those Query funcs.. But when I wrote "uses ebx" it worked!!! :-) Thanks :) Happy New Year! :-)
Posted on 2001-01-01 03:40:00 by isumenko
Hi, dont forget to align the stack to 4 byte blocks. Pushing single words or odd structures in LOCAL statements gives wired errors under NT. beaster.
Posted on 2001-01-02 05:24:00 by beaster
thx beaster, dword aligning the stack seemed to solve all those weird win2k problems that were driving me nuts. tola
Posted on 2001-01-02 13:01:00 by Tola
The problem was not returning 0 from DialogProc... I was returning garbage.
Posted on 2009-03-08 06:26:33 by comrade
Heh, comrade the necromancer :P
Posted on 2009-03-08 08:13:09 by f0dder
Glad you finally solved this 8 year old bug :lol:
Posted on 2009-03-08 08:21:15 by JimmyClif
Comrade locuta - causa finita ^^
Posted on 2009-03-08 13:03:24 by ti_mo_n