【问题标题】:Saving variables between app sessions without an external file在没有外部文件的情况下在应用会话之间保存变量
【发布时间】:2025-12-29 22:50:11
【问题描述】:

我正在编写一个让用户输入文本字符串的应用程序。我想保存程序会话之间的字符串。那就是我希望能够关闭程序并重新打开它而不会丢失数据。

我宁愿保持一切独立,没有外部配置或数据文件。有没有办法将数据文件封装在可执行文件中?到目前为止,我一直在考虑操作可执行文件的属性或使用 NTFS 辅助数据流来保存输入。

【问题讨论】:

  • 似乎你想保持它尽可能简单,事情是:使用文件在会话之间存储数据最简单的方法
  • @DimChtz "你不能修改可执行文件来保存和检索数据" - 你确定可以。这只是一个非常糟糕的主意,但它确实可行,对文件格式有足够的了解(Windows 上的 COFF,大多数类 Unix 系统上的 ELF)。

标签: c++ variables save executable


【解决方案1】:

如果您不将数据保存在某处,它将丢失。

您可以通过多种方式保存数据,但它们最终都会以字节的形式存储在您的磁盘上。

您可以使用单独的文件或数据库或(在 Windows 上)注册表(理智的方法),或者您可以做一些不太常规的事情,例如修改可执行文件的扩展属性、使用多个文件流甚至重写可执行文件本身,但是这些都是相当脆弱的方法,当你可以写一个简单的文件时为什么还要麻烦?

【讨论】:

    最近更新 更多