我试图为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
,它放在标题中,在第一个函数的原型中,我放置了注释。 () 有人对可能的解决方案有想法吗?预先感谢