0

外部ライブラリ ChronoEngine.lib に大きく依存する以前のプログラムの再構築に取り組んでいます。以前のものと同じ追加のインクルード ディレクトリ、リンカーなどを保持する新しいプロジェクトを作成しました。

ヘッダーファイルに次のコードがあります

#ifndef DRAW
#define DRAW
#include "physics/CHsystem.h"

class draw
{
public:
   // Change size
   static void changeSize(int w, int h);

   // World definition
   static void drawSky(double halfSize, double red, double green, double blue);
   static void drawChair() ;
   static void drawCDG() ;
   static void drawPlane();

   // Geometrical definition
   static void drawSphere(ChBody* body);
   static void drawBox(ChBody* body);
};
#endif

これは前のプロジェクトと同じヘッダー ファイルですが、ここで Visual Studio は ChBody の定義を見つけられません (これは "physics/CHsystem.h" ヘッダー ファイルの定義に含まれています - このファイルにはphysics/ChBody.h が含まれています -)。 ChBody を右クリックして参照を見つけると、Visual Studio は 5 つの参照を見つけます (1 つは実際の定義 (ChBody.h から)、残りの 4 つはライブラリからの他のファイルの前方参照です)

クラスの実際の定義を見つけるようにプログラムに指示するにはどうすればよいですか? どうやら、ライブラリへのリンクの問題ではなく、参照の問題のようなものです

私のmain.cppは当分の間、画面に何かを出力するだけで、draw.cppは空です(当分の間、draw.hで宣言している関数を定義していません)

ありがとうベストヴィンセント

4

1 に答える 1

0

ありがとうございました 実はそれはかなり簡単に解決できる問題でした

問題は、他のクラス (ChBody など) が名前空間で定義されていたため、

using namespace <the name of the namespace>;

クラスの定義の前と #include の後は、この種の問題を解決します。

ありがとうベストヴィンセント

于 2013-02-06T14:18:02.580 に答える