是否可以指定 CWinApp::WriteProfileString() 使用的应用程序名称?
如果我使用 CWinApp::SetRegistryKey 将公司名称设置为“MyCompany”,并在名为“SomeApp”的应用程序中调用 AfxGetApp()->WriteProfileString,则我的字符串将存储在以下注册表项下:
HKEY_CURRENT_USER\Software\MyCompany\SomeApp\...
问题是我的用户想要运行多个版本的 SomeApp。因此,为了使注册表设置不发生冲突,我想将它们存储在如下键中:
HKEY_CURRENT_USER\Software\MyCompany\SomeApp 1.1\...
HKEY_CURRENT_USER\Software\MyCompany\SomeApp 2.0\...
等等
我可以用我自己的函数替换 WriteProfileString 的所有实例,但这将非常困难,因为它在我们的源代码和我们使用的一些第三方库中广泛使用。
是否有某种方法可以强制 WriteProfileString 使用不同的字符串作为应用程序名称?
最佳答案
应用程序构造函数中的这段代码运行良好:
free((void*)m_pszProfileName);
free((void*)m_pszRegistryKey);
m_pszRegistryKey = _tcsdup(L"nobugz");
m_pszProfileName = _tcsdup(L"myapp\\1.0");
关于windows - 控制 WriteProfileString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1810151/