1

我正在将游戏移植到 Windows,并且想知道如何存储高分数据,以便同一系统上的所有用户都可以共享数据。理想情况下,数据不应该由用户自己写入,只能由拥有数据的应用程序(在本例中为游戏)写入。除了纯粹的技术细节,我还想知道最佳实践。

在 Unix 上,这可以通过在可执行文件上设置 set-UID 位并让可执行文件和有问题的共享文件属于同一个系统用户(在我的例子中是游戏)来实现。将此类文件放在 /var/lib/games 中也是一种最佳做法。

4

1 回答 1

0

首先,你不能做什么:

  1. 您不能让某些可执行文件更改某些值,但要阻止运行它的用户这样做。
  2. 您不能使某些可执行文件在特定帐户下运行,除非您使用某种加载程序(另一个可执行文件)来确保这一点。
  3. 您不能使用注册表来存储共享数据,除非您的用户以管理员身份运行(这不应该是一个选项)。

现在,你可以做什么:

  1. 使用数据库...
  2. 使用 ProgramData 文件夹(XP 上的“所有用户”)。
  3. 使用一些加载器让您的应用程序在同一用户下运行,这会打开该用户的注册表和 AppData 文件夹(坏主意 - 只是提到它在技术上是可行的)。

如果#1是不可能的,我会去#2。

关于这个主题的好读物:如果我面向多个操作系统版本,我应该在哪里存储我的数据和配置文件?

于 2011-10-08T21:49:29.763 回答