Использование библиотеки gdcm в UE4

Для моего проекта UE4 я хочу использовать библиотеки GDCM для C ++ для загрузки КТ. Так что я действительно много пытался в последние несколько дней, но я все еще не могу использовать GDCM … Но где ошибка? Кто-нибудь может мне помочь?

  • Я успешно создал файлы dll и lib с помощью CMake (VS 2013 Win64).
  • Я поместил все библиотеки в … Нереальные Проекты \ VolumeImport \ ThirdParty \ Includes \ GDCM \ Libraries
  • Я добавил каждую из 16 библиотек в VolumeImport.Build.cs с помощью
    PublicAdditionalLibraries.Add (Path.Combine (LibrariesPath, «gdcmMSFF.lib»));
    PublicAdditionalLibraries.Add (Path.Combine (LibrariesPath, «gdcmCommon.lib»)); …
  • Я помещаю все файлы заголовков в Unreal Projects \ VolumeImport \ ThirdParty \ Includes \ GDCM \ Includes
  • Я установил Includepath на это место в свойствах проекта.
  • Я поставил все библиотеки в C: \ Windows \ System32

Затем я использовал заголовки:

#include "VolumeImport.h"
#include <gdcmVersion.h>
#include <gdcmReader.h>
#include <gdcmPixmapReader.h>
#include <gdcmImageReader.h>
#include <gdcmAttributes.h>

bool CTFileLoader::Convert_DICOM()
{
/** ... other well working code ... */

gdcm::Trace::SetDebug(false); gdcm::Trace::SetError(true);

gdcm::ImageReader reader;
reader.SetFilename(files_to_process[i].c_str());
if(!reader.Read()) { }

}

И я получаю сообщение об ошибке в файле gdcmMediaStorage.h: «ошибка C4515:« gdcm »: пространство имен использует само себя».

Я пробовал использовать разные включения, но это вызывает разные ошибки в различных заголовках … Что-то не так с библиотеками? Но я уверен, что они были добавлены, потому что использование только gdcmTrace.h и gdcm :: Trace :: functions работает нормально.

1

Решение

Теперь я получил решение:

  • В моем VolumeImport.Build.cs я дополнительно добавил библиотеки DLL:
    PublicDelayLoadDLLs.Add (Path.Combine (LibrariesPath, «gdcmMSFF.dll»)); …
  • Я изменил файл gdcmMediaStorage.h: закомментируйте «использование пространства имен gdcm;»
  • Кроме того, у меня были проблемы dynamic_cast с этой большой библиотекой, и она должна включать RTTI
1

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

Других решений пока нет …

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