Hi,
also die Definition im Interface ist wie folgt:
Aufruf:
function GetValue(Group: Integer; Element: Integer; DataType: DX_DATA_TYPE): OleVariant; safecall;
Ich habe ein Programm wo in einer Schleife 500 mal diese Funktion aufgerufen wird.
Code:
Delphi-Quellcode:
for j:=0 to 499 do
begin
new(ptr);
ptr^ := GetValue($0008,$0018,TYPE_STRING);
Dispose(ptr);
end;
Festgestellt habe ich es zu erst mit dem Taskmanager von Windows, dass der Prozess immer mehr Speicher belegt.
Danach habe ich mir mit MemProof das auch noch mal genauer verfolgt.
Hab aber keine Idee was mein fehler ist.
Achja hab extra ein Testprojekt gemacht. Es wird nur initalisiert, die Schleife durchlaufen und alles wieder freigegeben.
Und genau in dieser Schleife Steigt der Speicher verbrauch und wird nicht freigegeben.
Gruß