WritePrivateProfileStringによるデータ格納先


kokopelli  2007-09-11 18:21:34  No: 66269  IP: 192.*.*.*

WindowsVISTA上で、VC++6.0で開発しています。ほんとはよろしくないようですが、まあ動いています。
WritePrivateProfileString()でiniファイルを指定してデータを出力し、GetPrivateProfileString()で読み出しを行いますと、ちゃんと書きこんだデータが読めます。しかし、どこにもiniファイルが見あたらず、レジストリを検索してもそれらしいキーがありません。いったいどこにデータは書き込まれているのでしょうか?

編集 削除
Blue  2007-09-11 18:35:55  No: 66270  IP: 192.*.*.*

どこにあるiniファイルを書き換えようとしていますか?

UACってご存知でしょうか?
Vista対応アプリを開発する人にとっては当然知っていないといけない事柄です。

編集 削除
kokopelli  2007-09-11 19:05:40  No: 66271  IP: 192.*.*.*

WritePrivateProfileString("a","b","3","xxx.ini");
のような書き方で、「VC++のデバッグの開始」で実行しています。
UACというのは、おそらく、User Access Controlの略でしょうか?詳しいことは知りません。

編集 削除
Blue  2007-09-11 19:16:23  No: 66272  IP: 192.*.*.*

いや、INIファイルがあるフォルダはどこ?
てことです。

UAC詳しく知らないならこれを期に学んでおくべきです。

編集 削除
kokopelli  2007-09-11 19:46:15  No: 66273  IP: 192.*.*.*

むかしは(windows2000のころ)は、このコードで作業フォルダにiniファイルができていたのに今はできません。で、iniファイルが見つからないのでこの質問をしています。いろいろ探したけれどないんです。

編集 削除
Blue  2007-09-11 20:58:28  No: 66274  IP: 192.*.*.*

>作業フォルダ
とは具体的にどこになるのでしょうか?
(Progra Filesフォルダの配下とか)

UACについて調べてもらえばわかると思いますが、
Windows 2000のときのように実行ファイルは動くようにはなっていません。

ためしに実行ファイルを右クリックメニューの「管理者として実行」として
実行してみてください。

編集 削除
RAPT  URL  2007-09-17 22:24:13  No: 66275  IP: 192.*.*.*

Vista で VC ってことは、VC 自体「管理者として実行」としないと
色々と制約があったはず。

それはさておき、VC をユーザーモードで実行しているなら、
Blue さんのおっしゃるとおり、UAC で転送されているのでしょう。

単に ini 操作が主目的ではないならば、VC 自体を「管理者として実行」
とすれば、目的は達せられるでしょう。
(それが「正しい動作」かどうかは別として。)

編集 削除