我一直在尋找一些時間,沒有一點希望。 基本上我想知道在程序退出後是否可以保存一個變量並在可執行文件中讀取它。是否可以在程序關閉後在內部保存變量並對其進行讀寫?
我知道可以使用fstream函數將變量存儲在外部文件中,但是我正在尋找一種像.exe一樣將其存儲在內部的方法。
string l;
cin >> l;
// function to save it internally.....
在此先感謝o.o
我一直在尋找一些時間,沒有一點希望。 基本上我想知道在程序退出後是否可以保存一個變量並在可執行文件中讀取它。是否可以在程序關閉後在內部保存變量並對其進行讀寫?
我知道可以使用fstream函數將變量存儲在外部文件中,但是我正在尋找一種像.exe一樣將其存儲在內部的方法。
string l;
cin >> l;
// function to save it internally.....
在此先感謝o.o
以下是關於爲什麼它不是一個好主意的一些提示。
/
作爲只讀文件掛載)並不少見。所以,很多怪癖的,很多都在你的程序和用戶體驗的複雜的解決方法(需要申請特殊權限,棘手的保存和備份,極有可能造成數據丟失)。另一方面,簡單的保存到數據文件很容易實現和用戶友好。
正如在評論@drescherjm和@Peter提到,這種做法有什麼安全軟件查找,所以它不是一個真正的聰明的想法。 我不是非常瞭解你的意圖,但如果你想你的程序中實現協同例程這裏是你可以做什麼:
static int state=0;
,並用它來實現合作程序生命週期的例程。更好的辦法是將狀態或配置數據存儲在文件中。文件的一個目的是在程序終止後需要存儲數據。 –
@ThomasMatthews這就是我所說的。 –
這可能在某些條件下,但我說這是一個壞主意,可能會阻止工作,具體取決於您的操作系統。在現代Windows上,如果沒有UAC標高,應用程序文件夾甚至不會寫入。而且防病毒軟件可能會檢測到更改.. – drescherjm
你所描述的是一個自我修改的可執行文件。我記得有些MS-DOS程序是用來存儲某些用戶設置的。大多數現代操作系統都會通過設計阻止這樣的事情發生(例如,在啓動時鎖定可執行文件以使其不可修改,將可執行文件加載到內存中,並將該內存標記爲不可修改),並且如果操作系統允許,安全軟件可能會阻止它。正是因爲試圖修改可執行文件或運行代碼是很多惡意軟件所做的。 – Peter
我不明白爲什麼這個問題得到了2個贊成票,這並沒有那麼糟糕。不如好的,但似乎很好。 –