AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

GetProcAdress für Variablen?

Ein Thema von diabox · begonnen am 28. Sep 2006 · letzter Beitrag vom 28. Sep 2006
Antwort Antwort
Benutzerbild von diabox
diabox

Registriert seit: 13. Sep 2006
61 Beiträge
 
Delphi 2010 Professional
 
#1

GetProcAdress für Variablen?

  Alt 28. Sep 2006, 18:03
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 ^^.
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: GetProcAdress für Variablen?

  Alt 28. Sep 2006, 18:06
Delphi-Quellcode:
var
testvariable,testergebnis: integer;
testpointer: Pointer;
begin
testvariable:=333;
testpointer:=@testvariable;
testergebnis:=PInteger(testpointer)^; //wieder 333? => ja
end;
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: GetProcAdress für Variablen?

  Alt 28. Sep 2006, 18:18
Moin Diabox,

wenn es unbedingt eine Funktion sein soll:
Tausche in Deinem Beispiel mal GetVarAddress mit Addr aus.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von diabox
diabox

Registriert seit: 13. Sep 2006
61 Beiträge
 
Delphi 2010 Professional
 
#4

Re: GetProcAdress für Variablen?

  Alt 28. Sep 2006, 18:38
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...
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#5

Re: GetProcAdress für Variablen?

  Alt 28. Sep 2006, 18:39
Hallo,
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
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: GetProcAdress für Variablen?

  Alt 28. Sep 2006, 18:41
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
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#7

Re: GetProcAdress für Variablen?

  Alt 28. Sep 2006, 18:47
Hallo,
Zitat von SirThornberry:
@xaromz: somit hast du unrecht
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 .

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: GetProcAdress für Variablen?

  Alt 28. Sep 2006, 18:48
Zitat von xaromz:
Hallo,
Zitat von SirThornberry:
@xaromz: somit hast du unrecht
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 .

Gruß
xaromz
Published-Membervariablen sind doch auch Variablen
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von diabox
diabox

Registriert seit: 13. Sep 2006
61 Beiträge
 
Delphi 2010 Professional
 
#9

Re: GetProcAdress für Variablen?

  Alt 28. Sep 2006, 18:55
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?
Wer zweifelt, detoniert nicht!'
Dieter Nuhr
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: GetProcAdress für Variablen?

  Alt 28. Sep 2006, 18:58
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz