• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイル指定を、ハードコードではなく、ソフトコーディング(?)したい)

ファイル指定をソフトコーディングする方法は?

このQ&Aのポイント
  • VC++ 6.0で開発している場合、RegLoadKey関数を使用してntuser.datを読み込む方法を知りたいです。
  • 現在、ハードコードでファイルのパスを記述していますが、OSに依存しないようにソフトコーディングしたいです。
  • どのような方法でソフトコーディングを行えば良いでしょうか?お手数ですが、ご教授いただけますと幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

98を除けばGetUserProfileDirectory関数を使えば希望のディレクトリパスがとれますが、 98も対象にすると、SHGetSpecialFolderLocationもしくはSHGetSpecialFolderPathを使うことになります。 (ちゅうか、リンク先に書いてあるのを読めばわかるはず) リンク先の SHGetSpecialFolderLocation関数のコードそのままで、 ディスクトップのパスを取って、パスを分解し、ntuser.datをつければ終わり。 (_splitpath,_makepathを組み合わせるもしくは、自力で一番最後の\を探して、それ以降の文字をntuser.datに置換する。)

kgyqk433
質問者

お礼

ご返事ありがとうございます。 どの関数は使うかなんとなくわかっていたのですが、調べた結果のコードが「CSIDL_DESKTOPDIRECTORY」:デスクトップなどで、私が知りたかったntuser.datがある、「C:\\Documents and Settings\\ユーザー名」を直接指定するコードがあると思っていたのです。 >リンク先の >SHGetSpecialFolderLocation関数のコードそのままで、 >ディスクトップのパスを取って、パスを分解し、ntuser.datをつけれ >ば終わり。 >(_splitpath,_makepathを組み合わせるもしくは、自力で一番最後 >\を探して、それ以降の文字をntuser.datに置換する。) 上記参考にしてちょっと確認してみます。 ご返事ありがとうございます。

その他の回答 (1)

回答No.1
kgyqk433
質問者

お礼

ご返事ありがとうございます。 同様なものを、こちらに質問前に見たのですが、どのコードが対応するのかわかりませんでした。。。 再度、bluecampus様が指定したURLを見たのですが、どれが対象なのかわからない次第です。 ご迷惑をおかけしまして申し訳ございませんが何卒よろしくお願いします。