QString到TEXT()

时间:2015-08-10 14:19:19

标签: qt qt4 registry

我需要像这样打电话

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,因为我需要从注册表中读取二进制值

1 个答案:

答案 0 :(得分:0)

你很接近:QString有一个toStdWString()函数,它返回std::wstring而不是toStdString()返回的std::string

然后,请致电c_str()获取const wchar_t*