同じワークスペースにある、異なるプロジェクトのクラスを使う方法を探しています。
同じプロジェクト内であれば、使いたいクラスのファイル名をインクルードするだけで
いいと思うのですが、異なるプロジェクトの場合はどのようにしたらいいですか?
よろしくお願いします。
環境
VC 6.0
Windows 2000
1つのファイルを複数のプロジェクトに入れることができます。
メニューの[プロジェクト]-[プロジェクトへ追加]-[ファイル]で
他プロジェクトのファイルを追加してください。
>1つのファイルを複数のプロジェクトに入れることができます。
説明不足ですみません。
確かに、使いたいクラスのファイルを呼び出し元と同じプロジェクトに
追加していまえばいいのですが、
別のプロジェクトに置いたままそのクラスを使いたいのです。
よろしくお願いします。
インポートしたい方のクラスのあるフォルダを
オプションのディレクトリでインクルード"ソースファイルの
検索ディレクトリに加えれば
#include header.h
でも、呼び出せます。まぁ、ちょっと荒技かもしれないですが。
dairygoodsさんのおっしゃる通り、そのまま一度ためしてみてはいかがですか。
>1つのファイルを複数のプロジェクトに入れることができます。
これは、ファイルを複数作るのではなくて、プロジェクトに登録するという意味です。
このため、特定のフォルダによく利用するファイルを置いて、複数のワークスペース
で利用することも可能です。
別のプロジェクトに追加してしまうと両方のプロジェクトから変更が効いてしまうので
それが好ましくない(管理は一元化したい)ということであれば、
参照したいプロジェクトの設定でC/C++というタブがありますから、
これのプリプロセッサというカテゴリのインクルードファイルのパスに
そのディレクトリのパスを追加します。出来れば、相対位置指定をした方が良いです。
「オプションのディレクトリでインクルード"ソースファイルの検索ディレクトリに加えれ
ば」
というのはやめた方が良いです。他のプロジェクトにも影響を及ぼしてしまいます。
ここに加えるのは、MSやサードパーティが提供しているライブラリを別のディレクトリに
インストールした時などに止めるべきで、プロジェクト依存するような設定をすべきでは
ありません。
できれば、特定のプロジェクトにしか関係しないような設定は全てプロジェクトの設定に
押し込めるべきでしょう。
> 別のプロジェクトに置いたままそのクラスを使いたいのです。
この方法が、まさに、
「別のプロジェクトにあるファイルをクラスを使いたいプロジェクトに追加する」
なのですが、この方法ではどのような問題があるとお考えですか?
インクルードファイルのパスを通しただけでは、
コンパイルはできますが、リンクできません。
ああ、その別のプロジェクトがライブラリになっていないと
私が紹介した方法では駄目ですね。
自分がそうするので思い込みで話してました。
実際の所、別のプロジェクトにあるクラスオブジェクトを使いたいというのは
どういう風な状態なのでしょうか?
別プロジェクトがライブラリになっているのか、
それとも単に別プロジェクトにあるクラスのみを流用したいだけなんでしょうか?
思い出したので追記。
同じくプロジェクトの設定にリンクタブがありますけれど、
このタブのインプットカテゴリにあるオブジェクト/ライブラリモジュールに
相対パスでそのオブジェクトを指定するれば、リンクも出来ますね。
私的には、他のプロジェクトでも使うような物は別に集めてライブラリにして
しまいますけれど。