[C++] Auslesen von Values aus Adressen parallel laufender Programme

Jarvid

Lt. Junior Grade
Registriert
Mai 2003
Beiträge
256
Hallo,

wie die Überschrift schon andeutet wollte ich Fragen ob es in einer Win32 Visual c++ Anwendung möglich ist den Wert einer Adresse aus einem anderen Programm das gleichzeitig läuft auszulesen,nicht zu berabeiten,mir geht es nur um das auslesen.

Wenn mehr Infos zum Problem nötig sind einfach fragen.

Danke,
Jarvid.
 
Re: [c++] Auslesen von Values aus Adressen parallel laufender Programme

Was meinst du mit "Wert einer Adresse"?
Hast du die Adresse im Speicher und möchtest wissen was dort steht?
 
Re: [c++] Auslesen von Values aus Adressen parallel laufender Programme

Was genau ist eigentlich der Hintergrund deiner Frage?

Wennd du in verschiedenen Tasks die selben Daten verwenden willst, dann wäre ein "Shared Memory" eine Idee, wenn auch eine sehr schlechte.

Oder du informierst dich über "Interprozesskommunikation" um Daten von einem Task zu einem anderen zu bringen.
 
Re: [c++] Auslesen von Values aus Adressen parallel laufender Programme

Richtig,ist die Adresse im Speicher und ich möchte wissen was dort steht.

Problem ist,die andere Anwendung ist eben nicht von mir sprich ich komme an die Daten nur durch die Werte im Speicher heran.

Vielleicht mal im groben das Problem umschreiben,geht um LiveforSpeed,ein Spiel.
Mit Settings für die Wagen,leider werden immer alle Settings aufgeführt egal welche Strecke.

Nun,meine Idee war folgende,auszulesen welche Strecke im moment ausgewählt ist(was ja zb. als ein Wert in besagter Adresse steht) und dementsprechend nur Setups dir zur Strecke gehören im Settingsordner bereitzustellen.

Hoffe die Problematik ist jetzt klarer,aufjedenfall danke schonmal :)
 
Re: [c++] Auslesen von Values aus Adressen parallel laufender Programme

Kennst du denn die Speicheradresse?
 
Re: [c++] Auslesen von Values aus Adressen parallel laufender Programme

Ja,zumindest dachte ich das,bemerke aber gerade,dass ich mir die Windowsspeicherverwaltung doch zu einfach vorgestellt habe.

Falls es nun also keine Möglichkeit gibt allein durch die aktuelle Process ID des Programms und der ebensoaktuellen Adresse für den Wert sich hm eine Art richtigen Offset dafür zusammenzureimen fällt das ganze ohnehin ins Wasser.

Da habe ich mich wohl reichlich übernommen ;)
 
Re: [c++] Auslesen von Values aus Adressen parallel laufender Programme

Die Funktionen die Du brauchst sind OpenProcess und ReadProcessMemory. Um sie einsetzen zu können, musst Du den Dienst für geschützten Speicher deaktivieren.

Das sind zumindest die blanken Vorraussetzungen, wie Du's anstellst. Programmiert hab ich sowas auch noch nie. Und wie Du selbst gesagt hast, die Speicherverwaltung von Win2k und aufwärts ist nicht gerade trivial.
Also, viel Erfolg ;)
 
Außerdem bekommt jeder Prozeß seinen eigenen virtuellen Speicher (also die vollen 4GiB, oder auch nur 2 oder 1, das ändert aber nichts).

Will heißen, dass eine Variable an der Adresse 0x_was_weiß_ich in Prozeß A aus Sicht von Prozeß B mit verdammt hoher Wahrscheinlichkeit nicht an der Adresse 0x_was_weiß_ich liegt, weil ja jeder Prozeß seine eigenen 4/2/1 GiB Speicher zur Verfügung hat.
 
Hm,dann wirds wohl vorerst nichts,werd noch bisschen suchen vllt. stoß ich ja durch Zufall auf was hilfreiches.

Danke euch jedenfalls.
 

Ähnliche Themen

Zurück
Oben