![]() |
Re: "Unsterbliche" Klassen
Zitat:
|
Re: "Unsterbliche" Klassen
Hehe ich glaube ich weiß sogar wie ich das abwenden kann :mrgreen:
|
Re: "Unsterbliche" Klassen
Im Prinzip gibts eine ganz einfache Methode. An Adresse null steht immer der Zeiger auf die VMT (virtual Method Table) in der die Verweise zu den überschrieben Methoden drin stehen. Man muss ganz einfach die Adresse der VMT auf die von TObject umlenken :lol: Dann funktioniert auch wieder der Aufruf von FreeInstance. hehe.
|
Re: "Unsterbliche" Klassen
Bis jetzt müsst ihr noch keine Angst haben -.-^^
Mein Problem im Moment ist :
Delphi-Quellcode:
-.-^^
Meine(Un)VerwundbareKlasse := nil;
Und das abzuwenden ist irgendwie ein Problem grad :mrgreen: |
Re: "Unsterbliche" Klassen
Zitat:
Aber eventuell könntest du ja eine Standard-Property definieren, die du stattdessen auf Nil setzen würdest. Dann dürfte der Pointer noch auf das Objekt zeigen, aber ein anderer Pointer wird gelöscht... ;) |
Re: "Unsterbliche" Klassen
Funktionieren Standardproperties nicht nur für array-Eigenschaften?
|
Re: "Unsterbliche" Klassen
Zitat:
Ich muss ja verhindern das
Delphi-Quellcode:
seine Wirkung verliert, bzw das die Klasse schnell wieder ihren Zeiger wiederbekommt oder ihn erst gar nicht verliert..
Klasse := nil;
|
Re: "Unsterbliche" Klassen
Hey.. Eine Klasse besitzt ihren Zeiger nicht. Du besitzt den Zeiger auf die Klasse.. Also hilft nur, deinen Zeiger auf die Klasse mit einem Schreibschutz zu versehen.
|
Re: "Unsterbliche" Klassen
Ich weiß nicht, ob es wirklich funktioniert, aber ich dachte an sowas:
Delphi-Quellcode:
Eventuell funktioniert es ja. Ist jedoch nicht getestet.
property Irgendwas: Pointer read fIrgendwas write fIrgendwas; default;
|
Re: "Unsterbliche" Klassen
Ah ja.. soweit zur Theorie... ^^
Und wie sieht die Praxis aus ? (Bitte wenigstens ein Ansatz, ich muss ja sagen das ich die Unverwundbare Klasse erfunden hab xD) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22: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