1

私の UE4 プロジェクトでは、C++ 用の GDCM ライブラリを使用して CT スキャンをロードしたいと考えています。ここ数日、本当にいろいろ試しましたが、まだ GDCM を使用できません... しかし、エラーはどこにあるのでしょうか? 誰かが私を助けることができますか?

  • CMake (VS 2013 Win64) で dll ファイルと 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::functions のみを使用すると問題なく動作するため、それらが追加されたと確信しています。

4

1 に答える 1

1

今、私は解決策を得ました:

  • 私の VolumeImport.Build.cs では、次の DLL をさらに追加しました。...
  • gdcmMediaStorage.h ファイルを変更しました。「using namespace gdcm;」をコメントアウトします。
  • さらに、この大きなライブラリで dynamic_cast の問題が発生したため、RTTI を有効にする必要があります
于 2015-10-08T07:13:22.970 に答える