c++ - kann ein programm seinen eigenen code ändern?

...komplette Frage anzeigen

3 Antworten

Das geht insofern, dass du die Infos in einer Datei (z.B. txt, XML oder JSON) abspeicherst und zusammen mit deiner Ausführbaren Datei/Bibliothek verteilst. Dann kann deine Bibliothek die Infos aus dieser Datei auslesen und zurückgeben, gleichzeitig kann jeder diese Datei bearbeiten und braucht nichts zu kompilieren/deinen Code verstehen.

So, wie du dir das vorstellst, geht das nicht, nein. Jedenfalls nicht bei einer kompilierten Sprache - bei einer Interpreter-Sprache ist das unter Umständen was anderes.

Mittel und Wege wird es mit Sicherheit immer irgendwie geben, aber wenn du solche Überlegungen anstellst, ist das ein ziemlich sicheres Zeichen dafür, dass schon mit dem Entwurf deines Programms etwas nicht stimmt.

"Allwissender" hat ja schon Andeutungen in diese Richtung gemacht - wenn du etwas genauer beschreibst, was dein Programm tut und was du vor hast, kann man vielleicht alternative Ansätze überlegen.

okay... hier mal ausführlich meine idee:

ich habe ein konsolen fenster, welches mir diverse Infos ausgiebt. (z.B vergiss nicht den Wecker zu stellen) jetzt möchte ich, dass man im konsolenfenster einen neuen text eingeben kann, welcher beim nächsten starten der datei erscheint. (also z.B vergiss nicht den wecker zu stellen - und zu duschen) 

Also theoretisch ohne eine text datei oder den code von hand zu ändern. Aber ich glaube das scheint nicht möglich zu sein...

0
@IBAxhascox

Nein, ohne den Text in einer Datei bis zum nächsten Programmstart zwischenzuspeichern geht das nicht ohne weiteres.

Der gängige Weg wäre, dass dein Programm beim Start eine Konfigurationsdatei öffnet, in der es den anzuzeigenden Text findet. Dieser wird eingelesen, in einer Variablen zwischengespeichert und ausgegeben. Verändert der Nutzer den Text, wird die Eingabe des Benutzers in dieselbe Variable gelegt und bei Beenden des Programms in die Konfigurationsdatei geschrieben. Beim nächsten Start liest das Programm diese dann wieder ein... usw.

0

Selbstverständlich kannst Du in C++ einen Interpreter für C++ schreiben und diesen ausführen.

und kannst du sagen wie man das macht? oder eine seite verlinken

0
@IBAxhascox

Schau Dir Musterprogramme zu "Parser" an, Der PHP-interpreter ist Open-Source, der macht eigentlich fast das, was Du brauchst.

Erklären kann man das nicht in einem Forum oder auf einer Website. Üblicherweise Studiert jemand Informatik, um derartiges zu machen, und dann geht er das auch nicht allein an.

1

Was möchtest Du wissen?