Kompiliertes Programm nachträglich verändern?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Kompiliertes Programm nachträglich verändern?

Beitrag von PureBasic4.0 »

Hi Leute,

ich möchte 2 Exe-Dateien erstellen. Die eine soll den Text in der anderen verändern können.

Beide Programme wurden kompiliert. Das 2. (das zu verändernde) enthält z.b. eine Konstante #Text. Diese ist aber nach dem Kompilieren nicht mehr veränderbar. Das 1. Programm soll das 2. so verändern können, dass #Text nicht mehr "Hallo" sondern z.b. "Hallo2" enthält. Es sollen sozusagen Informationen an das Programm übergeben werden, ohne dass Programm 1 oder eine andere Art von Datei (z.b. ini-Datei) mitgeliefert werden muss. Gibt es dafür einen kleinen Code-Snippet, oder lässt sich sowas auch anders realisieren?

Da die beiden Programme nicht nur auf meinem Rechner zum Einsatz kommen, wird es wahrscheinlich nichts bringen, den PureBasic Compiler in das 1. Programm einzubetten und das 2. dann per Sourcecode neu zu kompilieren.
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Beitrag von milan1612 »

Also vergiss erst einmal die Konstante. Die werden nämlich vor dem kompilieren
mit dem eigentlichen Wert ersetzt. Eine Möglichkeit wäre das ganze
mit einer Ressourcendatei zu lösen. Und die dann nachträglich zu ändern,
gibts im engl. Forum ein Snippet.
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

aber ich möchte, dass das Programm ohne zusätzliche Dateien funktioniert. Eine Ressourcendatei muss doch auch mitgeliefert werden, oder?
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Beitrag von milan1612 »

Nein, die wird mit einkompiliert :wink:

EDIT: Schau mal hier. So schaut zum Beispiel ein Menu Template in einer RC Datei aus,
du kannst damit auch "Konstanten" definieren (Google :wink: )
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

Kapiere ich jetzt irgendwie nicht. Ich kann nichts kompilieren, weil ich doch den Compiler nicht mitliefern darf (da Vollversion).

Zur erklärung:

Programm 1 enthält per IncludeBinary Programm 2. Wird Programm 1 ausgeführt, soll Programm 2 in eine Datei schreiben und so verändern, dass der Inhalt einer Konstante (oder halt Ressources-Datei) nicht mehr "Hallo" sondern "Hallo2" lautet.
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Es gibt mehrere Methoden um Daten zwischen Programme aus zu tauschen.
MailSlot, Pipes oder WM_COPYDATA

für WM_COPYDATA siehe hier: http://www.purebasic.fr/german/viewtopi ... wmcopydata

FF :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag von roherter »

Programm 2 Temporär auf Platte schreiben und ProgramParameter nutzen! :shock:
Purebasic 5.0 32bit und 64 bit

I'm back from hell
xperience2003
Beiträge: 972
Registriert: 04.10.2004 18:42
Computerausstattung: Amiga, LinuxMint, Windows7
Wohnort: gotha
Kontaktdaten:

Beitrag von xperience2003 »

wenn es nur nen text ist dann ist das einfach
schreib in der fertigen exe einfach nen text an deiner variable
und die 2. exe sucht den dann und tauscht in aus
..ganz einfach

der osdm demomaker ist mit der technik gebaut
und der tauscht zig sprites, images music , playroutienen
..erm..und auch mal ne textzeile ^^
amiga rulez...
Rebirth Software
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

Ich möchte aber alles in EINER Datei haben. Da kann ich mit ProgramParameter nicht viel anfangen, weil man ja ne Verknüpfung braucht, um darauf zuzugreifen.

Die Variable soll dann in den Daten der Exe-Datei erhalten bleiben. So, als würde man die Datei erneut mit der veränderten Konstante kompilieren.
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag von roherter »

Mir fällt da jetzt nur "Writestring" ein!
Wie du das jetzt umsetzt ist deine Sache ich weiß ja noch nichtmal was genau für ein Program das werden soll!
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Antworten