2009-08-01 10 views
1

Windowsレジストリに短いユーザーデータ文字列を保存しています。これは、私のユーザーの一人が '\'文字を含む文字列を保存しようとするまでうまくいきました。これはレジストリパスの区切り文字として解釈されました。Windowsレジストリに任意のテキスト( ''を含む)を格納する方法

この問題を回避するためのベストプラクティスは何ですか?単純なエンコーディングのいくつかの並べ替え?

注:私はQt QSettingクラスを使用してC++経由でレジストリにアクセスしていますので、特定のMSツール/言語に固有のものではなく、一般的な回答に感謝します。

+0

私は元々考えていたように、キーに\を含む文字列を格納していました(データではありません)。したがって、うまくいかないことはほとんど驚くことではありません。私の不幸のうちに私を入れて、質問を終わらせてください。 –

答えて

2

QSettings::setValue()機能を直接使用することができます。それがうまくいかない場合(キー名ではなく値のために)、それはQtのバグのように聞こえます。 Key Syntaxのセクションでは、キー名にスラッシュを使用しないでくださいが、値に何が間違っているかはわかりません。

+0

Groan。さらに検討すると、私は他のデータを保存していたことが分かります。だから私は、ユーザーの文字列をキーの最後の部分として使用し、残りのデータを値として保存しました。だからそれは台無しになることはほとんどありません。私の悪い。 –

2

RegSetKeyValueは、キー、サブキー、および値を異なるパラメータに分解します。

すべてregistry functions in MSDNです。

+0

Qt APIを使用して、MS Win32 APIではなくレジストリにアクセスしています。私は2つを混ぜたり、Win32 APIですべて書き直したりしないことを好みます。 –

+0

ああ。 Qt固有ではなく、「低レベル」/言語に依存しないことを意味するように「ジェネリック」な要求を出しました。 –

関連する問題