windows - 控制 WriteProfileString

标签 windows mfc visual-c++

是否可以指定 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/

相关文章:

windows - 文件时间戳不随数据更新而改变

c++ - 如何检查网站是否包含 Flash

c++ - MFC 是否仅适用于 Visual Studio 而不是 Visual C++ Express?

c++ - VC++ 2010 : 'missing type specifier' errors come and go without changes to code

windows - Goroutines 8kb 和 windows 操作系统线程 1 mb

c++ - Windows C++ 十六进制查看器 GUI 组件

windows - 在 Windows 中查找文件夹的实际大小

c++ - 在 Visual Studio MFC 中,我可以在组合框中包含文本但在代码中获取 int 吗?

转换问题: __asm__ __volatile__ from GNU C to MSVC for in/out wrappers

c++ - 仅移动类型的 std::expected 的这种行为是 MSVC bug 还是未定义的行为?