在 WinAPI 中是否有任何标准方法来处理应用程序设置?我目前正在做的是:
if(!ReadKey(some_setting))
WriteKey(some_setting, some_setting_setting_default_value)
初始化设置对话框时。然后我将小部件状态设置为从注册表中读取的相应值。问题是,如果应用程序是第一次运行,则无法按照上述代码模式读取默认设置。还需要一个 ReadKey()
来将刚刚写入的默认设置读入我程序中的设置变量。这对我来说看起来有点笨拙。所以问题基本上是:
- 是否有任何标准方法可以在 Win32 中使用设置?
- 而且,最重要的是,有没有什么方法可以在安装过程中设置默认应用程序设置,以便有代码来设置默认设置? (我想这是首选方法,因为这样您就可以修改默认应用程序设置而无需重建它)
同样,这应该是纯 Win32,不允许使用 MFC。
为什么这是作业?这是关于做事是否有既定惯例的问题,而不是要求为我做我的工作。现在我最好从那里删除“大学项目”短语。
最佳答案
您可以避免将硬编码的默认值写入注册表,并将注册表留空,除非它包含非默认值:
string ReadRegistry(
const string& some_setting,
const string& some_setting_default_value
)
{
//try to read user-specified setting from registry
string rc;
if (ReadKey(some_setting, rc))
{
return rc;
}
//else return hard-coded default value, not from registry
return some_setting_default_value;
}
或者,您可以在安装程序时(在程序运行之前和尝试从注册表中读取之前)将所有默认值写入注册表。
Is there any standard way to work with settings in Win32?
没有。
Is there any way to set up default application settings during installation
是的,安装程序可以写入注册表。
关于c++ - 使用 WinAPI 的应用程序设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3076343/