我使用d3dx9.h标头可以使用许多Direct3D函数和数据类型。其中一个是“D3DXVECTOR3'”。我偶然发现了一个我无法找到原因的奇怪问题:
我有两个文件,Link.h和Link.cpp。 Link是一个静态类。在我的Link.cpp和Link.h中,我已经包含了d3dx9.h文件,如下所示:
#ifndef D3DX9_INCLUDED
#define D3DX9_INCLUDED
#include <d3dx9.h> // Direct3D 9
#endif
在Link.cpp中,我创建了一个函数来获取D3DXVECTOR3变量:
#pragma once
#ifndef D3DX9_INCLUDED
#define D3DX9_INCLUDED
#include <d3dx9.h> // Direct3D 9
#endif
namespace Core
{
static class Link
{
private:
public:
static struct D3DXVECTOR3 getVector()
};
}
我的Link.h脚本将其公开:
static struct D3DXVECTOR3 getVector();
现在,当我从这个类外面调用这个函数时,它一直给我错误
error C2027: use of undefined type 'Core::D3DXVECTOR3'
这就是我调用getVector函数的方法:
Core::Link::getVector();
即使D3DXVECTOR3不是&#39; Core&#39;的成员,我也会收到错误。我在这个课程之外以同样的方式包含了d3dx9.h。
我尝试使用标准数据类型(如bool)完全相同,就像魅力一样。为什么getVector会将D3DXVECTOR3作为Core的子项返回?