C2065从类中创建的“未声明的标识符”,包括在项目中,并已被IntelliSense正确识别

时间:2018-11-08 16:09:51

标签: c++ dll visual-studio-2017

我试图为Unity创建一个C ++插件(通过.dll),以便使用触觉设备。我正在使用Visual Studio Community2017。我已经编写了一些代码,但是我无法编译它,因为当我尝试执行函数原型中定义的类时,出现“未声明的标识符”错误,如下所示。我最大的担忧是基于IntelliSense正确识别一切的含义,因此我不知道可能是什么问题。 我知道这可能是非常简单而愚蠢的,但是我完全被困在这里。

现在我有一个标题,类似于:

#ifndef PLUGIN_HEADER
#define PLUGIN_HEADER
#define APIENTRY __declspec(dllexport)

#include <Windows.h>
#include <iostream>
#include <map>
/* a bunch of other includes */
#include "RenderableClass.h"
#include "AuxClass.h"
extern "C" {
    /*ERROR COMES UP IN THE FOLLOWING LINE*/
APIENTRY void PluginInitialization(AuxClass* aux); 
APIENTRY void PluginCleanUp(AuxClass* aux); 
};

#endif

和类似这样的来源

#include "header.h"

APIENTRY void PluginInitialization(AuxClass* aux) 
{
    /* Initialization of the haptic device */
}

APIENTRY void PluginCleanUp(AuxClass* aux)
{
    /* memory release */
}

AuxClass和RenderableObject基本上只是一堆属性:

AuxClass.h:

#ifndef AUX_CLASS
#define AUX_CLASS

#include "header.h"
class AuxClass
{
public:
    /*Attrtibutes*/
    HHD m_hhd;
    HHLRC m_hhlrc;
    std::map<int, RenderableClass> m_objects;

    AuxClass();
    ~AuxClass();
};

#endif // !AUX_CLASS

AuxClass.cpp就是这样:

#include "AuxClass.h"
AuxClass::AuxClass(){  }
AuxClass::~AuxClass(){  }

此外,RenderableCLass.h和RenderableClass.cpp分别是:

#ifndef RENDERABLE_CLASS
#define RENDERABLE_CLASS

#include "header.h"

class RenderableClass
{
public:

    /*Attributes*/
    int* m_triangles;
    float* m_vertices;
    int m_id;
    /*other attributes*/

    /*Methods*/
    RenderableClass();
    ~RenderableClass();
};

#include "RenderableClass.h"
RenderableClass::RenderableClass(){   }
RenderableClass::~RenderableClass(){   }

我得到的错误如下:

Error   C2065   'AuxClass': undeclared identifier

,它放在标题中,在第一个函数的原型中,我放置了注释。 () 有人对可能的解决方案有想法吗?预先感谢

0 个答案:

没有答案