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)?如果是这样,也许将 include 放在那里会起作用;
  • 如果您在任何地方都包含 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 回答