質問: ``` //プロジェクト→[プログラム名]のプロパティ→リンカー→入力→追加の依存ファイル でlibファイルを追加することができました。 ```
回答: SHGetValue関数のプロトタイプ宣言はshlwapi.hにかかれているので、これをincludeしてやれば質問者さんが自分で書く必要はありません。(そのためのヘッダーファイルです) ビルドでエラーになるのはソースファイルの書き方が間違っているからではなくプロジェクトの設定が足らないからです。 !追加ライブラリの設定 標準ではshlwapi.libは依存ライブラリに指定されていないようなのでプロジェクトのプロパティー→リンカー→入力→追加の依存ファイルを編集してshlwapi.libを加えてやる必要があります。 質問者さんが自分のソースファイルに書いたSHGetValueのプロトタイプ宣言は必ず消してください! というのはSHGetValue関数は実際にはSHGetValueA(ASCII文字列用)またはSHGetValueW(ワイド文字用)という名前で存在していて、shlwapi.hの中でプロジェクトの設定に従ってSHGetValueをそのどちらかに振り分けるマクロを設定しているからです。独自のプロトタイプ宣言を書いてしまうとこの機構はうまく働かなくてshlwapi.libを依存ライブラリに加えてもリンクエラーになってしまうと思います。