Soo, habe das Leck jetzt einschränken können. Es befindet sich eindeutig in der Ping-Funktion. Wenn ich diese aus dem Programm entferne, verschwindet das Leck.
Also scheint hier irgendwo in der "raw_ping.pas" etwas nicht ganz sauber freigegeben zu werden...
Delphi-Quellcode:
function Ping(InetAddress :
string; TimeOut : Integer) : boolean;
var
Handle : THandle;
InAddr : IPAddr;
DW : DWORD;
rep :
array[1..128]
of byte;
begin
result := false;
Handle := IcmpCreateFile;
if Handle = INVALID_HANDLE_VALUE
then
Exit;
TranslateStringToTInAddr(InetAddress, InAddr);
DW := IcmpSendEcho(
Handle, InAddr,
nil, 0,
nil, @rep, 128, 0);
Result := (DW <> 0);
IcmpCloseHandle(
Handle);
end;
Die
Unit enthält natürlich noch ein paar andere Funktionen, in denen sich das Leck befinden könnte.
Ich hoffe, ich befinde mich jetzt nicht auf der falschen Fährte
. Über Hinweise würde ich mich sehr freuen