将字符串添加到注册表路径regopenkeyex

时间:2015-07-09 17:56:25

标签: c++ visual-studio-2010 visual-c++ registry

嘿,让我们说这是代码:

HKEY hk;
long n = RegOpenKeyEx(HKEY_LOCAL_MACHINE,L"SOFTWARE\\",
                  0,KEY_QUERY_VALUE | KEY_WOW64_64KEY, &hk );
if ( n == ERROR_SUCCESS ) {
    cout << "Found ! " << endl;
}
else {
    cout << "Failed with value " << n << endl;
}
RegCloseKey(hk);

所以我有一个变量字符串,我需要添加到可能如下所示的路径:

 string s = "test";

如何制作L&#34; SOFTWARE \\&#34; + s作为路径?

谢谢

1 个答案:

答案 0 :(得分:0)

我猜你试过了:

long n = RegOpenKeyEx(HKEY_LOCAL_MACHINE, L"SOFTWARE\\" + s, ... );

这可能会给你一个编译器警告。由于您需要在路径中添加变量字符串,因此可以使用:

const std::string sFullPath = "SOFTWARE\\" + s;
long n = RegOpenKeyEx(HKEY_LOCAL_MACHINE, sFullPath.c_str(), 0, KEY_QUERY_VALUE | KEY_WOW64_64KEY, &hk);

这是有效的,因为RegOpenKeyExconst char*为参数。