0

我在名为 D3DGraphics.h 的头文件中有一个名为 D3DGraphics 的类。我已经包含了 d3d9.h 并且我的图形文件绝对有效。

但是,最近我发现了一个头文件,其中包含 D3DGraphics.h 时不使用它,所以我删除了

#include "D3DGraphics.h"

当我这样做时,D3DGraphics 头文件/cpp 文件突然忘记了所有 DirectX 定义,并且我收到了很多错误,例如 IDirect3D9 和 D3DCOLOR_XRGB 未定义!?我用过

#pragma once

在我所有的头文件中,我很确定没有相互包含,所以我很难过。为什么删除文件的#include 会导致该文件停止工作!?

提前致谢

4

2 回答 2

0

对于任何有这个问题的人:我是个白痴。在我使用过的程序中的某个地方 #include <d3d.h> 这导致directx版本被定义为低于9,因此在我使用#include <d3d9.h> 它时在我的图形标题中没有定义任何directx9类型(facepalm。)

于 2013-08-01T17:43:11.543 回答
0

尝试使用标头保护而不是#pragma once.

IE

#ifndef D3DGRAPHICS_H
#define D3DGRAPHICS_H

class D3DGraphics...

#endif
于 2013-07-28T10:40:40.313 回答