GetPrivateProfileSectionでの値取得について

解決


OutOfControl  2010-11-22 16:37:45  No: 72073  IP: 192.*.*.*

はじめまして、OutOfControlと申します。

■環境
・VS2008 Pro
・VC++ 9.0(MFC)
・WinVista

早速なのですが、現在既存ソースの修正作業を行っております。
その中で、iniファイルに保存された設定値を取り出して表示を行うのですが、
うまく値が取得できず悩んでおります。
どなたかご助言いただけないでしょうか・・・

■状況。
・プログラム起動
・GetPrivateProfileSectionを呼び出し、iniファイルの値を取得。
  →この際、iniファイルの内容を更新しても、
    値が古いまま出力されます。
    (表示されている古い情報の内容は正しいです)

私なりには考えてみた原因としては、
最終的にプログラムをインストールする際、
レジストリにも設定値を登録しており、
iniファイルへのアクセスに失敗し、
試しに登録していたレジストリの内容
(インストール時の初期値)が読み込まれているのでは
ないかと考えているのですが・・・

デバックしてみると、少なくともiniファイルへのパスは正しいようで、
GetPrivateProfileSectionを呼び出し、値を取得したすると内容が既に
古い値になってしまい、何が原因なのかわからなくなってしまいました。
(iniファイルはC:\Windows配下に配置されています。)

※それならレジストリで一括管理を!といわれるかもしれませんが、
  iniの設定値変更は別exeで行われています。
  そして、設定変更exeは手が入れられない(ソースがそもそもない)ため、
  設定値をiniファイルから読み取ることにこだわりたいと考えています。

  稚拙な文章で申し訳ありませんが、
  ご助言よろしくお願いいたします。

編集 削除
tetrapod  2010-11-22 17:32:58  No: 72074  IP: 192.*.*.*

virtual store と UAC でまずぐぐってみると吉

編集 削除
OutOfControl  2010-11-22 18:11:06  No: 72075  IP: 192.*.*.*

tetrapod様

ご助言ありがとうございます!!

おっしゃるとおりvirtual storeとUACについて調べてみると、
理由がわかりました。

変更対象と参照対象が変わっていたのですね…
virtual storeについては恥ずかしながら知りませんでした。

これで解決とさせていただきます。
どうもありがとうございました。

編集 削除