IntelliSense:标识符“XMFLOAT4”未定义

时间:2015-02-19 13:14:41

标签: c++ c directx intellisense direct3d

    #ifndef RENDERER_H
    #define RENDERER_H

    #pragma once

    #include "Font.h"
    #include "Color.h"

    #undef CreateFont

struct Vertex_t {
    XMFLOAT4 xyzrhw;
    D3DCOLOR color;

    enum {
        FVF = D3DFVF_XYZRHW | D3DFVF_DIFFUSE
    };
};

我在尝试编译时遇到此错误:

  

IntelliSense:标识符“XMFLOAT4”未定义。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

您的代码中包含<DirectXMath.h>的内容并不清楚,因此我假设它位于Font.h或Color.h中的某个位置。

DirectXMath使用C ++命名空间DirectX,因此您应该使用:

struct Vertex_t {
    DirectX::XMFLOAT4 xyzrhw;
    D3DCOLOR color;

    enum {
        FVF = D3DFVF_XYZRHW | D3DFVF_DIFFUSE
    };
};

C ++编码建议是避免将using namespace语句放在标题中,只保留它们是.cpp文件的本地语句。