#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”未定义。
我该如何解决这个问题?
答案 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文件的本地语句。