WritePrivateProfileStringによるデータ格納先


kokopelli  2007-09-12 03:21:34  No: 66269

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


Blue  2007-09-12 03:35:55  No: 66270

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

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


kokopelli  2007-09-12 04:05:40  No: 66271

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


Blue  2007-09-12 04:16:23  No: 66272

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

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


kokopelli  2007-09-12 04:46:15  No: 66273

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


Blue  2007-09-12 05:58:28  No: 66274

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

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

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


RAPT  URL  2007-09-18 07:24:13  No: 66275

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

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加