![]() |
Wie gibt man CoSWbemLocator wieder frei?
Servus,
in einer Funktion werden ein paar Objekte erstellt.
Delphi-Quellcode:
wie kann ich die Variablen wieder freigeben?
var
Locator: ISWbemLocator; Services: ISWbemServices; SObject: ISWbemObject; ObjSet: ISWbemObjectSet; SProp: ISWbemProperty; SPropSet: ISWbemPropertySet; begin Locator := CoSWbemLocator.Create; Services := Locator.ConnectServer... ObjSet := Services.ExecQuery... Enum := (ObjSet._NewEnum) as IEnumVariant; ... Versucht habe ich schon
Delphi-Quellcode:
gruß
CoSWbemLocator(Locator).Free; // <- fehler
Locator._Release; // <- fehler |
Re: Wie gibt man CoSWbemLocator wieder frei?
Einfach mit
Delphi-Quellcode:
bzw. wird automatisch von Delphi gemacht wenn die gültigkeit der Inteface-Zeigers verlassen wird. Nennt sich automatische Referenzzählung von Delphi.
Locator := nil
Nur bei schlecht programmierten Komponenten (wie den Internet Explorer) ist es des öfteren nötig _Release direkt auf zu rufen um die Fehler der Komponenten bezüglich Speicherfreigabe zu beheben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz