Arrrrg
Delphi-Quellcode:
CloseHandle(0); // geht
CloseHandle(INVALID_HANDLE_VALUE); // geht
CloseHandle(123456789); // GEHT NICHT
Aber eigentlich sollte nirgendwo ein "ungültiges"
Handle vorkommen, aber vielleicht
Muss ich heute Abend nochmal in Ruhe nachsehen.
Und sowas ist ja keine Lösung.
Delphi-Quellcode:
function CloseHandle(hObject: THandle): Boolean;
begin
if IsDebuggerPresent
then
try
Result :=
{Windapi.}Windows.CloseHandle(hObject);
except
on E: EExternalException
do
if not Assigned(E.ExceptionRecord)
or (E.ExceptionRecord.ExceptionCode <> $C0000008)
then
raise;
on E:
Exception do
raise;
end
else
Result :=
{Windapi.}Windows.CloseHandle(hObject);
end;
[edit]
Mir fällt grade ein, dass man im Debugger die
Exception ignorieren und vom Debugger behandeln lassen könnte.