Frage von IBAxhascox, 49

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

Hallo Ich möchte eine "Bibliothek" programmieren, in der man infos zu einzelnen teilen aufrufen kann. ich möchte , dass man auch informationen hinzufügen kann, ohne den code selber zu ändern (also nicht neu kompilieren). also dass man auch ohne das Dev C++ Compiler etwas daran ändern kann. wie / ist es möglich sowas zu machen?

Antwort
von Allw1553nd3r, 49

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.

Antwort
von spaghetticode, 37

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.

Kommentar von IBAxhascox ,

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...

Kommentar von spaghetticode ,

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.

Antwort
von Mikkey, 44

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

Kommentar von IBAxhascox ,

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

Kommentar von Mikkey ,

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.

Keine passende Antwort gefunden?

Fragen Sie die Community