3

QSettings でレジストリを読み取りました。私が読みたいキーはこれです:

HKEY_LOCAL_MACHINE\SYSTEM\Setup\Source OS (2015/8/1 02:45:41 更新)

キー名Source OS (Updated on 8/1/2015 02:45:41)は動的なので、開くだけです

QSettings settings("HKEY_LOCAL_MACHINE\\SYSTEM\\Setup", QSettings::NativeFormat);

settings.childGroups() を再帰的に実行し、これを使用してキーを作成します。

QString key = settings.fileName() + "\\" + settings.group();

しかし、これは次の結果になります。

\HKEY_LOCAL_MACHINE\SYSTEM\Setup\Source OS (8\1\2015 02:45:41 更新)

ご覧のとおり、スラッシュはバックスラッシュになり、名前とパスの部分を区別できません。

QSettings がスラッシュをバックスラッシュに変換する理由は何ですか?

4

1 に答える 1

1

QSettings のドキュメントから:

セクション名またはキー名にスラッシュ ('/'および) を使用しないでください'\'。バックスラッシュ文字は、サブ キーを区切るために使用されます (以下を参照)。Windowsでは、 によって に'\'変換されるQSettingsため'/'、同一になります。

一般に、動的なレジストリ キー名という考え方はあまり良くありません。Source OSより良いアプローチは、キーと値の中に 2 つの個別の値を作成することだと思いUpdated Onます。

于 2015-08-10T16:23:07.077 に答える