头文件中基于DirectX的结构

时间:2014-06-14 17:13:33

标签: c++ struct directx header-files xna-math-library

我对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文件中重新定义。

非常感谢任何帮助,谢谢大家!

1 个答案:

答案 0 :(得分: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
    

希望这有帮助。