C ++:struct在命名空间中自动编译

时间:2014-07-18 10:25:47

标签: c++ class namespaces header-files

我使用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的子项返回?

0 个答案:

没有答案