Eine Frage habe ich trotzdem noch:
Wohin verschwindet Winapi.ActiveX.IStream
?
Dieser Stream kümmert sich um den ihm zugewiesenen
TMemoryStream
, so dass ich den nicht freigeben darf/muss. Aber trotz fehlender Freigabe von
Winapi.ActiveX.IStream
bringt mir mein Programm bei
ReportMemoryLeaksOnShutdown:= True;
am Ende keine Meldung.
Das wäre mir wichtig, weil mein Programm genauso lang läuft wieder Rechner und damit am Tag im Maximum mehrere hundert Bilder verarbeiten muss. Dass es am Ende des Programms automatisch aufgeräumt wird, reicht mir also leider nicht, wenn mir zwischendurch die Puste/der Speicher aus geht.
Bitte mit Interfaces, Reference Counting und dergleichen beschäftigen, dann werden alle Fragen beantwortet. Das Forum hier hat dazu einige Threads und Tutorials.
Auch einfach mal in TStreamAdapter.Destroy einen Haltepunkt setzen und den Call Stack nachvollziehen.