![]() |
Delphi-Version: 10.4 Sydney
Weak-Referenzen im Windows
Wurde das jetzt erst repariert, oder geht das schon länger?
[EDIT] im 10.3.3 geht es auch schon. Weiß zufällig wann das repariert wurde? Hatte es damals, vor vielen Jahren ausprobiert und gefrusstet die letzten Jahre sinnlos ersatzweise weiterhin böse in Pointer gecastet. :oops: War jetzt wieder auf die Idee gekommen, da in 10.4 das Speichermanagement etwas geändert wurde. > unified memory management Als ich es das letzte Mal versuchte, da ging es nur im NextGen und der Windows-Compiler hatte das [Weak] einfach so und ohne Warnung ignoriert.
Delphi-Quellcode:
type
TTest = class(TInterfacedObject) destructor Destroy; override; end; destructor TTest.Destroy; begin ShowMessage('bin weg'); inherited; end; procedure TForm2.FormCreate(Sender: TObject); var I1: IInterface; [Weak] I2: IInterface; begin I1 := TTest.Create; I2 := I1; I1 := nil; // hier wird das Interface/Objekt freigegeben und I2 auf NIL gesetzt if Assigned(I2) then ShowMessage('och nö'); end; PS: die Klassenverfollständigung mag keine Attribute. :shock:
Delphi-Quellcode:
und raus kommt das
type
TTest = class(TInterfacedObject) destructor Destroy; override; // hier der Cursor und Strg+Shift+C end; procedure TForm2.FormCreate(Sender: TObject); var I1: IInterface; [Weak] I2: IInterface; begin I1 := end;
Delphi-Quellcode:
type
TTest = class(TInterfacedObject) destructor Destroy; override; end; procedure TForm2.FormCreate(Sender: TObject); var I1: IInterface; [Weak] I2: IInterface; { TTest } destructor TTest.Destroy; begin inherited; end; begin I1 := end; |
AW: Weak-Referenzen im Windows
Zitat:
|
AW: Weak-Referenzen im Windows
Im NextGen (Android) ging es damals (2013 ... man, schon wieder lange her) ja schon, aber im Windows-Compiler wurde es Anfangs scheinbar nicht implementiert, oder es gab einen Bug.
Für TObject war es ja sowieso nicht drin, da das nur im NextGen wie ein Interface reagierte, aber als ich versuchte das für IInterface zu benutzen, da reagierte Win32 mit und ohne [Weak] gleich/unverändert. Aber da das Feature ja für ARC erfunden wurde, war es irgendwie "verständlich", dass es im WindowsCompiler nicht ging und ich hatte nicht wieder danacht gesehn, dazumal ich auch nichts wieder drüber zu hören war, dass/ob sich was geändert hat. |
AW: Weak-Referenzen im Windows
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 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 by Thomas Breitkreuz