QString 到 TEXT()
QString to TEXT()
我需要这样打电话
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,因为我需要从注册表中读取二进制值
你很接近:QString 有一个 toStdWString() 函数,它 returns 一个 std::wstring
而不是 toStdString() 返回的 std::string
。
然后,调用c_str()得到一个const wchar_t*
。
我需要这样打电话
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,因为我需要从注册表中读取二进制值
你很接近:QString 有一个 toStdWString() 函数,它 returns 一个 std::wstring
而不是 toStdString() 返回的 std::string
。
然后,调用c_str()得到一个const wchar_t*
。