Использование Vicon Datastream SDK с Unreal Engine вызывает ошибку в CPP пространства имен в Vicons client.h

Прежде всего я должен упомянуть, что я новичок в c ++, но в ходе обучения я приобрел некоторый опыт программирования.
В настоящее время я работаю над плагином для потока данных между vicon blade 1.7 и нереальным движком 4.4.3. Это должно быть сделано с помощью Vicon Datastream SDK v 1.4, который содержит заголовочный файл, библиотеку и файл .dll.

Прямо сейчас у меня проблемы с компиляцией моего основного плагина.
Vicon DataStream SDK был создан в более старой версии Visual Studio, чем в 2010 году. Так что я хочу знать, есть ли возможность продолжить работу с Vicon SDK в Visual Studio 2013? Должен ли я заставить SDK использовать последнюю версию DLL в Visual Studio, и если да, то как мне это сделать?

Я уже пытался продолжить работу с 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», я получу огромный список ошибок, подобных этой:

Ошибка 2, ошибка LNK2019: неразрешенный внешний символ
«__declspec (dllimport) public: __cdecl
ViconDataStreamSDK :: UCPP :: Client :: Client (аннулируются)»

Я думаю, это потому, что CPP уже определен в нереальном движке, но из-за зависимости файла заголовка от файла .dll в SDK, определение пространства имен не может быть изменено в SDK.
Это ожидание правильное или я на неправильном пути?

0

Решение

У меня были похожие проблемы с пространством имен. Чтобы исправить это, я сделал это в моем заголовочном файле плагина UE4 перед включением Vicon DataStreamSDK

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

В конце этого файла я переопределил макрос CPP

#define CPP PCPP

Компилируется и работает нормально без проблем

1

Другие решения


По вопросам рекламы [email protected]