在UE4中使用gdcm libs

时间:2015-09-30 15:59:52

标签: c++ dll unreal-engine4 .lib gdcm

对于我的UE4项目,我想使用C ++的GDCM库来加载CT扫描。所以过去几天我真的尝试了很多,但我仍然无法使用GDCM ...但错误在哪里?有人能帮助我吗?

  • 我成功使用CMake(VS 2013 Win64)创建了dll和lib文件。
  • 我把所有的lib放在...... Unreal Projects \ VolumeImport \ ThirdParty \ Includes \ GDCM \ Libraries
  • 我在VolumeImport.Build.cs中添加了16个库中的每一个     PublicAdditionalLibraries.Add(Path.Combine(LibrariesPath,“gdcmMSFF.lib”));     PublicAdditionalLibraries.Add(Path.Combine(LibrariesPath,“gdcmCommon.lib”)); ...
  • 我将所有头文件放在Unreal Projects \ VolumeImport \ ThirdParty \ Includes \ GDCM \ Includes
  • 我在项目属性中将Includepath设置为此位置。
  • 我将所有dll放在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 ::函数可以正常工作。

1 个答案:

答案 0 :(得分:1)

现在我得到了解决方案:

  • 在我的VolumeImport.Build.cs中,我另外添加了DLL: PublicDelayLoadDLLs.Add(Path.Combine(LibrariesPath,“gdcmMSFF.dll”)); ...
  • 我更改了gdcmMediaStorage.h文件:注释掉“using namespace gdcm;”
  • 此外,我在这个大型库中遇到了dynamic_cast问题,需要启用RTTI