Hallo,
I have some program crashing on exit:
Call kernel32.446: GlobalHandle(4033d284) ret=0f725ce0 fs=008f
Ret kernel32.446: GlobalHandle() retval=4033d25e ret=0f725ce0 fs=008f
Call kernel32.453: GlobalUnlock(0000d25e) ret=0f725cee fs=008f
CALL MSVCRT20.562: _except_handler3(<unknown, check return>) ret=4004480a fs=008f
The handle to GlobalUnlock is 0xd25e, which is the lower part of the
return value of GlobalHandle. Looking in the code of the programm
makes things clear:
0x0f725cda (VB40032.DLL.EbResetProject+0x157f): call *0xf7bc25c -> 0x4007bec0
(GlobalHandle [global.c:1146])
0x0f725ce0 (VB40032.DLL.EbResetProject+0x1585): testl %eax,%eax
0x0f725ce2 (VB40032.DLL.EbResetProject+0x1587): jz 0x0f725cf5
(VB40032.DLL.EbResetProject+0x159a)
0x0f725ce4 (VB40032.DLL.EbResetProject+0x1589): movzwl %eax,%edi
0x0f725ce7 (VB40032.DLL.EbResetProject+0x158c): pushl %edi
0x0f725ce8 (VB40032.DLL.EbResetProject+0x158d): call *0xf7bc2dc -> 0x4007be40
(GlobalUnlock [global.c:1105])
The return value is truncated by the movzwl %eax,%edi
instruction. The programm seems to work with win9x.
What to do about that?
Bye
Uwe Bonnes [EMAIL PROTECTED]
Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------