WindowsVISTA上で、VC++6.0で開発しています。ほんとはよろしくないようですが、まあ動いています。
WritePrivateProfileString()でiniファイルを指定してデータを出力し、GetPrivateProfileString()で読み出しを行いますと、ちゃんと書きこんだデータが読めます。しかし、どこにもiniファイルが見あたらず、レジストリを検索してもそれらしいキーがありません。いったいどこにデータは書き込まれているのでしょうか?
どこにあるiniファイルを書き換えようとしていますか?
UACってご存知でしょうか?
Vista対応アプリを開発する人にとっては当然知っていないといけない事柄です。
WritePrivateProfileString("a","b","3","xxx.ini");
のような書き方で、「VC++のデバッグの開始」で実行しています。
UACというのは、おそらく、User Access Controlの略でしょうか?詳しいことは知りません。
いや、INIファイルがあるフォルダはどこ?
てことです。
UAC詳しく知らないならこれを期に学んでおくべきです。
むかしは(windows2000のころ)は、このコードで作業フォルダにiniファイルができていたのに今はできません。で、iniファイルが見つからないのでこの質問をしています。いろいろ探したけれどないんです。
>作業フォルダ
とは具体的にどこになるのでしょうか?
(Progra Filesフォルダの配下とか)
UACについて調べてもらえばわかると思いますが、
Windows 2000のときのように実行ファイルは動くようにはなっていません。
ためしに実行ファイルを右クリックメニューの「管理者として実行」として
実行してみてください。
Vista で VC ってことは、VC 自体「管理者として実行」としないと
色々と制約があったはず。
それはさておき、VC をユーザーモードで実行しているなら、
Blue さんのおっしゃるとおり、UAC で転送されているのでしょう。
単に ini 操作が主目的ではないならば、VC 自体を「管理者として実行」
とすれば、目的は達せられるでしょう。
(それが「正しい動作」かどうかは別として。)
ツイート | ![]() |