also ich hab es jetzt so gemacht:
Delphi-Quellcode:
function NetzwerkInfos_auslesen(var Liste: TAdapter_Array; out ErrorCode: Integer): Boolean;
var
pAdapterList : PIP_ADAPTER_INFO;
pAdapterAddresses : PIP_ADAPTER_ADDRESSES;
pAdapterList_store : PIP_ADAPTER_INFO;
pAdapterAddresses_store : PIP_ADAPTER_ADDRESSES;
begin
{...}
//Speicher anfordern
pAdapterList := AllocMem(LenAdapter_List);
pAdapterAddresses := AllocMem(LenAdapter_Address);
//Größe des angeforderten Speichers merken, notwendig für das FreeMem
//(die normalen Variablen werden nil und dadurch bleibt Speicher übrig)
pAdapterList_store := pAdapterList;
pAdapterAddresses_store := pAdapterAddresses;
try
{...}
finally
//
FreeMem(pAdapterList_store);
FreeMem(pAdapterAddresses_store);
end;
end;
Es sind doch nur 2 "kleine" Lecks
Ja - das stimmt schon! Aber ich ruf die Procedure ggf. über einen Timer auf und dann summieren sich die kleinen Lecks.
"Kleine Lecks machen auch Speichermist"
mfg
Helmi
>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<