私はVisual C++を使用してゲームに取り組んでいます。別のプロジェクトにいくつかのコンポーネントがあり、プロジェクトの依存関係を設定しました。別のプロジェクトのヘッダーファイルを#includeするにはどうすればよいですか?あるプロジェクトのクラスを別のプロジェクトで使用する方法がわかりません。
anotherプロジェクトからヘッダーファイルを#includeするプロジェクトでは、ヘッダーファイルのパスをプロジェクト構成の追加のインクルードディレクトリセクション。
プロジェクト構成にアクセスするには:
ヘッダーファイルを含めるには、コードに次のように記述します。
#include "filename.h"
追加のインクルードディレクトリにディレクトリを既に含めているため、ここでパスを指定する必要はないことに注意してください。そのため、Visual Studioがそれを探す場所を認識します。
プロジェクト設定にすべてのヘッダーファイルの場所を追加したくない場合は、ポイントまでディレクトリを追加し、そのポイントに相対して#includeするだけです。
// In project settings
Additional Include Directories ..\..\libroot
// In code
#include "lib1/lib1.h" // path is relative to libroot
#include "lib2/lib2.h" // path is relative to libroot
静的ライブラリ(つまり、.libファイル)を使用する場合、リンカ入力時にライブラリを追加する必要があります。これにより、リンケージ時にシンボルをリンクできます(そうしないと、未解決のシンボルが取得されます)。
#include
はプロジェクトとは何の関係もありません-プリプロセッサに「ヘッダーファイルの内容をここに置く」だけです。正しい場所を指すパス(../your_file.hなどの相対パスの場合もあります)を指定すると、正しく含まれます。
ただし、そのようなプロジェクトを適切にリンクするには、ライブラリ(静的/動的ライブラリ)について学習する必要がありますが、それは別の質問です。
プロジェクトプロパティでヘッダーへのパスを設定して、ヘッダーファイルを見つけようとするときにコンパイラがそこを参照するようにする必要があります。正確な場所は覚えていませんが、プロジェクトのプロパティを確認すると、表示されるはずです。
両方のプロジェクトが同じソリューションの下にあるので、 https://docs.Microsoft.com/en-us/cpp/build/adding-references-in- visual-cpp-projects?view = vs-2019 :
#include "../libProject/libHeader.h"
)で記述できます。絶対であろうと相対であろうと、#includeディレクティブの完全なパス参照を避けるようにしてください。代わりに、プロジェクト設定に他のプロジェクトのインクルードフォルダーの場所を追加します。必要な場合は、パス参照でサブフォルダーのみを使用してください。そうすれば、コードを更新しなくても物事を簡単に移動できます。