Hi Leute,
ich glaube, ich habe einen Bug im OpenDialog gefunden, und zwar unter XP Home SP3. Ich habe ihn bei einem eigenen Programm entdeckt, mich lange mit Debuggen rumgeärgert, bis ich auf die Idee gekommen bin, ein leeres Programm mit nur nem OpenDialog und nem Button zu schreiben. Danach habe ich noch geschafft, den Fehler auch in notepad.exe
auszulösen, was bedeutet, dass dies kein Delphi-OpenDialog-Problem ist.
Ohne Debugger äußert es sich so, dass, wenn ich eine bestimmte Datei im OpenDialog auswähle (aber auch nur, wenn diese auf meinem Desktop liegt - ich nutze den Desktop-Button ganz links, um zum Desktop zu kommen) und auf Öffnen klicke, dann erneut den OpenDialog öffne und die Maus auf irgendeine Datei halte, dass, anstelle des Tooltips, der erscheinen sollte und mit weitere Informationen zur Datei anzeigt, das Programm beendet wird.
Der Delphi-Debugger zeigt eine
AV an, bietet dabei aber nur einen OK-Knopf an, nicht Fortsetzen oder Anhalten, danach kommt das CPU-Fensert mit einem Code in der SHELL32.DLL. Der Aufrufstack zeigt nur KERNEL32.DLL, darüber viermal NTDLL.DLL, dann SHLWAPI.DLL, BROWSEUI.DLL und dann fünfmal die SHELL32.DLL an.
Hier mal ein Auszug aus dem CPU-Fenster:
Code:
7E701B49 85DB test ebx,ebx
7E701B4B 0F8C606BFAFF jl $7e6a86b1
7E701B51 FFB5D0FDFFFF push dword ptr [ebp-$00000230]
7E701B57 8B85CCFDFFFF mov eax,[ebp-$00000234]
7E701B5D 8B80C4010000 mov eax,[eax+$000001c4]
7E701B63 8B08 mov ecx,[eax]
7E701B65 8D95E4FDFFFF lea edx,[ebp-$0000021c]
7E701B6B 52 push edx
7E701B6C FFB5DCFDFFFF push dword ptr [ebp-$00000224]
7E701B72 50 push eax
7E701B73 FF5114 call dword ptr [ecx+$14] <------- da!
7E701B76 8BD8 mov ebx,eax
7E701B78 85DB test ebx,ebx
7E701B7A 0F84316BFAFF jz $7e6a86b1
7E701B80 7C0C jl $7e701b8e
7E701B82 FFB5D0FDFFFF push dword ptr [ebp-$00000230]
7E701B88 FF1554F3867E call dword ptr [$7e86f354]
7E701B8E 8BB5D8FDFFFF mov esi,[ebp-$00000228]
7E701B94 FF85E0FDFFFF inc dword ptr [ebp-$00000220]
7E701B9A 8B4678 mov eax,[esi+$78]
7E701B9D 8B8DE0FDFFFF mov ecx,[ebp-$00000220]
7E701BA3 3B08 cmp ecx,[eax]
7E701BA5 0F8D066BFAFF jnl $7e6a86b1
7E701BAB E94AFFFFFF jmp $7e701afa
7E701BB0 BF05400080 mov edi,$80004005
Wie auch immer, dieser Fehler taucht zwar meist, aber doch manchmal nicht beim ersten Tooltip auf, sondern erst beim zweiten bis vierten mal so etwa, und immer nur, wenn eine ganz bestimmte Datei auf meinem Desktop vorher ausgewählt war. Und wie gesagt, dies ist kein Delphi-Problem.
Ich würde jetzt einfach gerne mal wissen, ob es noch jemand schafft, den Fehler nachzuvollziehen. Wie gesagt, er tritt auch in notepad.exe auf.
Mfg
FAlter