in unit of OverbyteIcsIcmp,
the TICMP.Destroy have some problem

destructor TICMP.Destroy;
begin
    if hICMP <> INVALID_HANDLE_VALUE then
        IcmpCloseHandle(hICMP);
    if hICMP6 <> INVALID_HANDLE_VALUE then    { V8.02 }
        IcmpCloseHandle(hICMP6);
    if hICMPdll <> 0 then
        FreeLibrary(hICMPdll);
    hICMPdll := 0;
    WSACleanup;//this call will Influence other unit which also calle 
WSACleanup when TICMP.Initialize not executed.
    inherited Destroy;
end;

And this should be fine

destructor TICMP.Destroy;
begin
    if hICMP <> INVALID_HANDLE_VALUE then
        IcmpCloseHandle(hICMP);
    if hICMP6 <> INVALID_HANDLE_VALUE then    { V8.02 }
        IcmpCloseHandle(hICMP6);
    if hICMPdll <> 0 then
    begin
        FreeLibrary(hICMPdll);
        WSACleanup; //hICMPdll <> 0 means the TICMP.Initialize has eexecuted.
    end;
    hICMPdll := 0;
    inherited Destroy;
end;





-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to