QSettings读取注册表失败

文章目录

  • 问题描述
  • 解决办法

问题描述

我要读取"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography",

QSettings settings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography",NativeFormat);
QString value = settings.value("MachineGuid", "").toString();//读

得到个值为空。

解决办法

最后在 stackoverflow上找到了解决办法。
改为

QSettings settings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography",
QSettings::Registry64Format);

就好了。
原因是: NativeFormat 参数只有在程序跟系统版本一致的时候才行。
如果程序是32位,系统是64位,就要专门指定了。
而我的系统是win10 64位,因此改一下就好了。

你可能感兴趣的:(Qt)