質問: 自分の頭の中で整理がつかなかったもので、 大変初歩的な質問になりますが、質問させて下さい。 現在、Visual Studio 2010で開発をしています。(言語C++,WinApi使用) 一つソリューションの中には、 BaseFrameworkプロジェクト(Windowクラスなどといった各アプリケーション共通ライブラリ.libとして出力) Applicationプロジェクト(BaseFramework.libを利用して、アプリケーション作成.exeとして出力) 上記2つのプロジェクトがあるとします。 もちろん各プロジェクト毎にフォルダが用意されており、 アプリケーション実行パスは、ソリューションディレクトリのパスになると思います。 そこで、各アプリケーションで利用するデータ(画像、音声)は、 C:\ソリューションディレクトリパス\\Data以下に保存して利用します。 ・・・と、ここまではいいのですが・・・・。 どのアプリケーションでも共通で利用するデータ(画像、音声)は、BaseFrameworkプロジェクトフォルダ内の C:\BaseFrameworkプロジェクトフォルダパス\\Data以下に保存して利用したいのですが・・・。 ライブラリリンクのように、プロジェクトの構成プロパティでインクルードディレクトリやライブラリディレクトリの追加のような良い手段はないでしょうか?? 自分の知識の中では、 ・BaseFrameworkで使っているDataフォルダをまるごとソリューションディレクトリパスにコピーする←効 率悪い気がする・・・ ・ソース内で相対パスを指定する←これしかないのかなぁ・・・ といった方法しか思い浮かばないです・・・ 皆さんは、どういった方法で管理されているのでしょうか・・・? 共通のデータと、アプリケーション毎データの管理を別にする方法を、ご指導お願いできないでしょうか? お手数をおかけしますが、よろしくお願いします。
回答: VisualStudioに限らなければ、共通のデータ参照をさせたい場合に、相対パスを利用することはおかしくないと思います。ので、 > ・ソース内で相対パスを指定する←これしかないのかなぁ・・・ 悲観的になる必要もないかと^^ ボクの場合、VisualStudioは使い慣れていない人間ですが、逆にLinux開発が多かったので、相対パス(または絶対パス)をヘッダファイルに定義、あるいは環境変数で指定させるなどの方法を取ることが良くありました。