0

私は比較的 c++ に慣れていないので、複数の c++ ファイルからアクセスできる構造体を作成しようとしています。そのために、ヘッダーファイルに書いています。ただし、この構造体には DirectX ライブラリの識別子、つまり "xnamath.h" が必要です。

私の構造体は次のとおりです

struct Vertex
{
    Vertex(){}
    Vertex(float x, float y, float z,
        float u, float v)
        : pos(x,y,z), texCoord(u,v){}
        XMFLOAT3 pos;
    XMFLOAT2 texCoord;
};

resource.h ヘッダー ファイルに xnamath ヘッダー ファイルを含めようとしましたが、現在の問題よりも多くのエラーが発生しました。構造体はすべてのファイルで必要とされるため、私が知る限り、各 .cpp ファイルで再定義することはできません。

どんな助けでも大歓迎です、ありがとう!

4

1 に答える 1

0

どうやら私はコメントするのに十分な評判を持っていないので、ここにいくつかのアイデア/質問があります:

  • プリコンパイル済みヘッダー (通常は stdafx.h、または DXUT.h など) はありますか? もしそうなら、そこにインクルードを置くとうまくいくかもしれません。
  • どこにでもresource.hを含める場合:ファイルにはifndef宣言がありますか?そうでない場合は、同じ構造体の複数の宣言からエラーが発生している可能性があります。多分次のようなものを試してください:

    #ifndef _RESOURCE_H_
    #define _RESOURCE_H_
    
    // Includes you already had
    #include "xnamath.h"
    
    // Stuff you already had
    // Your vertex structure
    
    #endif
    

お役に立てれば。

于 2014-06-17T17:45:27.130 に答える