gpt4 book ai didi

c++ - 将 Vicon Datastream SDK 与虚幻引擎一起使用会在 Vicons client.h 中的命名空间 CPP 上引发错误

转载 作者:行者123 更新时间:2023-11-28 06:35:23 28 4
gpt4 key购买 nike

首先,我必须提到我是 c++ 的新手,但在我的学习过程中,我获得了一些编程经验。目前,我正在为 vicon blade 1.7 和 unreal engine 4.4.3 之间的数据流开发一个插件。这应该通过使用 Vicon Datastream SDK v 1.4 来完成,它包含一个头文件、一个库和一个 .dll 文件。

现在,我在编译我的基本插件时遇到了问题。Vicon DataStream SDK 是在比 2010 年更旧的 visual studio 版本中构建的。所以我想知道是否有可能在 visual studio 2013 中继续使用 vicon sdk?我应该强制 sdk 在 vi​​sual studio 中使用最新的 .dll 吗?如果是,我该怎么做?

我已经尝试继续使用 sdk,忽略了我之前提到的问题。当我在不更改 sdk 的头文件的情况下构建项目时,出现此错误:

Error 2 error C2059: syntax error : 'constant'

以下是受影响的行:

#ifdef WIN32

#ifdef _EXPORTING

#define CLASS_DECLSPEC __declspec(dllexport)

#else

#define CLASS_DECLSPEC __declspec(dllimport)

#endif // _EXPORTING


#elif defined( __GNUC__ )

#if __GNUC__ < 4

#error gcc 4 is required.

#endif

#define CLASS_DECLSPEC __attribute__((visibility("default")))

#else


#define CLASS_DECLSPEC

#endif

#include <string>

namespace ViconDataStreamSDK
{

namespace CPP
{
...
}

}

如果我将第二个命名空间重新定义为“UCPP”,我会收到一大堆类似这样的错误:

Error 2 error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl ViconDataStreamSDK::UCPP::Client::Client(void)"

我想是因为cpp在unreal engine中已经定义好了,但是由于sdk中头文件对.dll文件的依赖,所以sdk中命名空间的定义是不可更改的。这种期望是正确的还是我走错了路?

最佳答案

我在 namespace 方面也遇到过类似的问题。为了解决这个问题,我在包含 Vicon DataStreamSDK 之前在我的 UE4 插件头文件中做了这个

#define UCPP CPP
#undef CPP
#include <Client.h> //Vicon DataStreamSDK
.....

在这个文件的最后我重新定义了CPP宏

#define CPP PCPP

编译成功,没有问题

关于c++ - 将 Vicon Datastream SDK 与虚幻引擎一起使用会在 Vicons client.h 中的命名空间 CPP 上引发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26861360/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com