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*