Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi GetProcAdress für Variablen? (https://www.delphipraxis.net/78080-getprocadress-fuer-variablen.html)

diabox 28. Sep 2006 18:03


GetProcAdress für Variablen?
 
Ich hoffe allein die Fragestellung macht hier niemanden verrückt ^^, aber gibt es eine Funktion mit der ich - wenn ich nur den Namen meiner Variable habe - einen Pointer auf sie bekomme. Also ich meine das so:

Delphi-Quellcode:
var
testvariable,testergebnis: integer;
testpointer: Pointer;
begin
testvariable:=333;
testpointer:=GetVarAdress(testvariable);
testergebnis:=Integer(testpointer^); //wieder 333?
end;
Gibt es sowas? Es muss auch nicht unbedingt ein Pointer sein, die direkte Variable als Variant wäre auch schön ^^.

Dax 28. Sep 2006 18:06

Re: GetProcAdress für Variablen?
 
Delphi-Quellcode:
var
testvariable,testergebnis: integer;
testpointer: Pointer;
begin
testvariable:=333;
testpointer:=@testvariable;
testergebnis:=PInteger(testpointer)^; //wieder 333? => ja
end;

Christian Seehase 28. Sep 2006 18:18

Re: GetProcAdress für Variablen?
 
Moin Diabox,

wenn es unbedingt eine Funktion sein soll:
Tausche in Deinem Beispiel mal GetVarAddress mit Addr aus.

diabox 28. Sep 2006 18:38

Re: GetProcAdress für Variablen?
 
Danke an die Antworter, aber
sorry war n bisschen irretiert bei meinem Beispiel:
was ich eigenltihc meinte war:

Delphi-Quellcode:
var
testvariable,testergebnis: integer;
testpointer: Pointer;
begin
testvariable:=333;
testpointer:=GetVarAdress('testvariable'); //wichtig ist mir, dass ich sozusagen zur Laufzeit eine Zugriff auf eine Variable nur über ihren Namen bekomme.
testergebnis:=Integer(testpointer^); //wieder 333? 
end;
GetVarAdress(VarName: string);

Ich zweifle allerdings mittlerweile daran, dass das überhaupt möglich ist, da es ja zur Laufzeit nur noch um Adresse gibt, die VarNamen sind ja in der EXE nicht gespeichert...
Aber vllt. hab ich Glück...

xaromz 28. Sep 2006 18:39

Re: GetProcAdress für Variablen?
 
Hallo,
Zitat:

Zitat von diabox
Ich zweifle allerdings mittlerweile daran, dass das überhaupt möglich ist, da es ja zur Laufzeit nur noch um Adresse gibt, die VarNamen sind ja in der EXE nicht gespeichert...
Aber vllt. hab ich Glück...

Damit hast Du Dir selbst die Antwort gegeben.

Gruß
xaromz

SirThornberry 28. Sep 2006 18:41

Re: GetProcAdress für Variablen?
 
es sollte möglich sein wenn du die Variable unter Published ablegst (eventuell muss es sogar ein Property sein).
@diabox: wie du dann aber an die Adresse kommst weiß ich nicht. An den Wert der Variablen kommst du aber und auch setzen kannst du den Wert wieder.

@xaromz: somit hast du unrecht :mrgreen:

xaromz 28. Sep 2006 18:47

Re: GetProcAdress für Variablen?
 
Hallo,
Zitat:

Zitat von SirThornberry
@xaromz: somit hast du unrecht :mrgreen:

Wie Du schon schriebst, gilt das nur für published-Member von Klassen, auf die man dann per RTTI zugreifen kann. Variablen sind was anderes. Ätsch :tongue: .

Gruß
xaromz

SirThornberry 28. Sep 2006 18:48

Re: GetProcAdress für Variablen?
 
Zitat:

Zitat von xaromz
Hallo,
Zitat:

Zitat von SirThornberry
@xaromz: somit hast du unrecht :mrgreen:

Wie Du schon schriebst, gilt das nur für published-Member von Klassen, auf die man dann per RTTI zugreifen kann. Variablen sind was anderes. Ätsch :tongue: .

Gruß
xaromz

Published-Membervariablen sind doch auch Variablen :tongue:

diabox 28. Sep 2006 18:55

Re: GetProcAdress für Variablen?
 
Hmm wollte eigentlich sowas machen, wie in PHP vardump, was ich dann über Telnet aufrufen kann... Gibts vielleicht ne Möglichkeit, alle vom Programm verwendeten Variablen aufzulisten - also nur die Werte oder so?

SirThornberry 28. Sep 2006 18:58

Re: GetProcAdress für Variablen?
 
wie in php wirst du es nicht hinn bekommen denn PHP ist eine Interpretersprache und somit wird das da ganz anders gehandelt da kein nativer Code vorhanden ist für das was ausgeführt wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:22 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