你能把文件嵌入到exe中,每次使用都更新吗

  • 本文关键字:更新 文件 exe c++ winapi
  • 更新时间 :
  • 英文 :


我正在尝试制作一个应用程序来管理有关几个提供者的信息。目标系统是windows,我将使用c++进行编码。

用户不应该在任何与计算机相关的事情上得心应手,所以我想让它尽可能地防傻。现在我的目标是只分发一个可执行文件,它应该存储他们在其中引入的所有信息。每个用户都存储自己提供商的信息,所以我不需要与其他实例共享数据。他们确实通过csv将信息上传到预先存在的系统中,但我可以轻松处理。

我希望他们每月至少介绍一次新信息,所以我需要更新嵌入的信息。这可能吗?制作一个可移植的exe并更新其信息?到目前为止,我看到的唯一允许保存一些拟人化的便携式应用程序是通过让你把文件和exe一起拖动来实现的。

我尽量避免SQL以避免兼容性问题(对于我自己的应用程序,我使用外部TXT并解析数据(,但如果你告诉我这是唯一的方法,我会使用SQL。

我看到了其他几个关于嵌入文件的问题,但它们似乎都是常量。我的文件需要可更新

提前感谢!

编辑:感谢大家的评论。我已经明白,我想要的东西不值得它制造的问题。我会单独存储数据,并努力让我的同事了解可执行文件和它的数据之间的区别(就像向你奶奶的奶奶解释互联网一样…(

虽然我不会说这是不可能的,但它肯定既不简单也不漂亮,也不是任何人都应该建议做的事情。

基本问题是:在运行.exe时,.exe文件被映射到内存中,无法修改。现在,可以做的一件事是,当.exe启动时,在某个地方创建一个自己的临时副本,启动该副本,告诉新进程原始映像的位置(例如,通过命令行参数(,然后退出原始映像。该临时副本可以修改原始图像。要将数据放入.exe中,您可以使用参考资料,也可以手动修改PE映像,例如,使用映像中创建的特殊部分来保存数据。您也可以简单地在.exe文件的末尾附加任意数据,而不会损坏它

然而,我想再次强调,我不建议真的做这样的事情。我只是将数据存储在单独的文件中。如果你的用户熟悉Excel,那么他们应该熟悉数据存储在文件中的想法…

最新更新