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

0

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

Прямо сейчас у меня возникают проблемы с компиляцией моего основного плагина. Vicon DataStream SDK был построен в старой версии визуальной студии, чем в 2010 году. Поэтому я хочу знать, есть ли возможность продолжить работу с vicon sdk в visual studio 2013? Должен ли я заставить sdk использовать последнюю.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", я получаю огромный список ошибок, подобных этому:

Ошибка 2 ошибки LNK2019: неразрешенный внешний символ "__declspec (dllimport) public: __cdecl ViconDataStreamSDK :: UCPP :: Client :: Client (void)"

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

Теги:
visual-studio
sdk
unreal-engine4

1 ответ

1

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

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

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

#define CPP PCPP

Это компилируется и отлично работает без проблем.

  • 0
    Извините, что воскресил это ... Я делал то же самое, и это прекрасно работало ... в 4.13. Обновление до 4.15, и это больше не работает. Вы исправили эту проблему в более новой версии движка?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню