我即将在我的游戏中实现保存/加载功能,并且可能会使用Windows的minidump文件来实现此功能。
我没有经验,所以任何帮助都会受到赞赏。它甚至可能吗?可以从(迷你)转储文件中“恢复”正在运行的应用程序吗?
从已发布的几个答案中,似乎可以将游戏状态存储在转储文件中,因此我将改进这个问题:我必须投入多少“粘合剂”来重新创建我无法存储的内容转储文件?
答案 0 :(得分:4)
minidump保存所有虚拟内存和应用程序的CPU状态。到目前为止,似乎可以从转储中恢复所有内容。但事实并非如此,因为缺少句柄信息:句柄值是应用程序内存的一部分,句柄后面的对象(内核模式对象)已被释放或重新分配。这意味着无法恢复以下内容:
您需要重新分配这些内核资源 - 为此,您需要实现(签名)内核模式驱动程序。 在考虑实现内核模式驱动程序之前,我建议考虑一种保存和加载应用程序状态的不同方法。
答案 1 :(得分:2)
如上所述:http://msdn.microsoft.com/en-us/library/windows/desktop/ms680369%28v=vs.85%29.aspx
Minidump文件用于调试目的。您可以从这些文件中重新创建游戏上下文......但是......为什么不编写自己的文件格式?
答案 2 :(得分:0)
实现此目标的最佳方法是使用Recovery and Restart框架。简而言之,当您的应用程序崩溃时,您将有机会序列化重新启动应用程序时所需的任何信息。