In resource-File schreiben
-
Lass es einfach bleiben. Auf ein Programmverzeichnis hat man normalerweise niemals Schreibzugriff.
-
Ok, danke für die Antwort.
-
Die Zielrichtung habe ich nicht voll verstanden. Es ist immer möglich, im Programm veränderbare Einstellungen über eine Datei zu verwalten.
Diese Datei muss dann nur - wo immer die Einstellungen gebraucht werden - gelesen / geschrieben / ausgewertet werden..NET mit C# bietet da etwas sehr komfortables mit einer Programmeigenschaft settings (auch eine Datei). Aber sag uns präziser, was du willst.
-
Ich programmiere in C/C++. Ich dacht mir nur, dass es einfacher für den Anwender ist, wenn nur die Exe benötigt wird.
Ich hab das bis jetzt immer so gemacht, dass ich es in eine seperate Datei schreibe.
-
An alle, die es noch nicht verstanden haben:
Er hat seine settings.ini als Resource in seine Binary reinkompiliert und möchte wissen, wie er sie da modifizieren kann.An den Fragesteller:
Prinzipiell gibt es eine Reihe von Funktionen in der Windows API, die das Arbeiten mit Resourcen ermöglichen (z.B. UpdateResource).
Dein Problem ist nun aber, dass du, während dein Programm ausgeführt wird, auf die Binary nur lesend zugreifen kannst.
Windows sperrt grundsätzlich Dateien, die aktuell ausgeführt werden.
-
@DrakoXP
Danke, genau das meinte ich. Naja, dann muss ich wohl oder über wieder zur alten Methode zurückgreifen, oder ich speichere es in der Registry.Danke vielmals!
-
@DrakoXP Windows locked Deine Exe über ref counter ... wer soll denn auf Deine Exe Datei zugreifen? Du kannst eine ausgeführte exe Datei trotzdem verschieben umbennen, löschen, etc. , sofern keine Handles (ref-counts) offen sind.
-
@wAcKeLkOpF: LOL, tritt den Beweis an, in dem du ein Programm schreibst,
welches sich selbst löscht.
-
Windows sperrt grundsätzlich Dateien, die aktuell ausgeführt werden.
Das ist nicht der Fall!
Du kannst diese Dateien dabei löschen, verschieben, umbenenen, etc.
Windows erlaubt nur keine "self-modifying executables"!!!
Linux schon!zu Deinem Problem:
C:\Prog1.exe: Delete C:\Prog2.exe
C:\Prog2.exe: Call C:\Prog1.exe
-
Löschen geht nicht. Modifizieren teilweise. Umbenennen immer.