我需要像这样打电话
RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("SOFTWARE\\MICROSOFT\\Windows NT\\CurrentVersion"), 0, KEY_READ | KEY_WOW64_64KEY, &m_hRegKey)
但不是
TEXT("SOFTWARE\\MICROSOFT\\Windows NT\\CurrentVersion")
我只有一个qstring
我已经尝试了
QString key = settings.fileName() + settings.group();
RegOpenKeyEx(HKEY_LOCAL_MACHINE, key.toStdString().c_str(), 0, KEY_READ | KEY_WOW64_64KEY, &hkey);
但我明白了:
x.cpp:97: Fehler: cannot convert 'const char*' to 'LPCWSTR {aka const wchar_t*}' for argument '2' to 'LONG RegOpenKeyExW(HKEY, LPCWSTR, DWORD, REGSAM, PHKEY)'
RegOpenKeyEx(HKEY_LOCAL_MACHINE, key.toStdString().c_str(), 0, KEY_READ | KEY_WOW64_64KEY, &hkey);
我需要RegOpenKeyEx,因为我需要从注册表中读取二进制值
答案 0 :(得分:0)
你很接近:QString有一个toStdWString()函数,它返回std::wstring
而不是toStdString()返回的std::string
。
然后,请致电c_str()获取const wchar_t*
。