MFCでレジストリを使うとき注意すべきこと

「MFCでレジストリを使うとき注意すべきこと」の編集履歴(バックアップ)一覧はこちら

MFCでレジストリを使うとき注意すべきこと」(2009/06/25 (木) 18:00:34) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

MFCってどうやってレジストリ使おう、といろいろやるんだが、制約がきつい。 次の1点は意識しておこう。 MFCでレジストリを使うとき、アプリケーション名(application name)を変更するには。 結論。そんな方法は無い。 CWinApp::SetRegistryKey の説明をMSDNライブラリで引くと、 こんなところにできますよー、と 「キーには次の形式で格納されます。HKEY_CURRENT_USER\Software\<company name>\<application name>\<section name>\<value name>。」 という説明がある。 で、どこになるんだろう、どうやって設定するんだろうと調べまわるが、application nameは記述が見当たらなかったってわけ。 悪あがきした挙句、衝撃の真実を目にしてしまうわけ。 <company name> : SetRegistryKey で設定する。 <application name> :出来上がった実行プログラムの名前(○×△.exe の「○×△」) <section name> : GetProfileInt、GetProfileString、WriteProfileInt、WriteProfileString のパラメータlpszSectionに設定 <value name>  :GetProfileInt、GetProfileString、WriteProfileInt、WriteProfileString のパラメータlpszEntryに設定 Application name部分は、自分自身のファイル名を引いているようだ。 ビルドした後にexeをリネームしたら、見事にその名前どおりに application name部分の違うエントリーが出来上がっていた。 つまりexeの名前をかっこよくひょこひょこリネームするのはいいが、レジストリもちゃんとそれにあわせておかないといけない。 別のサポートプログラムなんか作って設定しようとは、考えないこと。 これをやっていたから泣く羽目になった。 RegOpenKeyEx()・RegQueryValueEx()、RegCreateKeyEx()・RegSetValueEx()をつかって、自前のレジストリ操作関数をつくったよ、もぅ。

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。