2012-09-27 3 views
3

SWIG를 사용하여 DCMTK 라이브러리 (C++로 작성 됨) 용 C# 래퍼를 만들려고합니다. 나는 DCMTK의 전체 소스 코드를 가지고,하지만 난 해결할 수없는 한 가지 문제를 가지고 ...SWIG를 사용하는 DCMTK 라이브러리 용 C# 래퍼

꿀꺽 꿀꺽에 대한 나의 스크립트는 다음과 같습니다 : 나는 명령 줄에서 꿀꺽 꿀꺽를 실행하십시오

#ifndef WRAPPER_SWIG_I 
# define WRAPPER_SWIG_I 
%{ 
%} 

%include "include/dcmtk/dcmjpeg/ddpiimpl.h" 
%include "include/dcmtk/dcmjpeg/dipijpeg.h" 
%include "include/dcmtk/dcmjpeg/djcodecd.h" 
#endif 

:

swig -includeall -Wall -c++ -csharp -outdir $(SolutionDir)\dcmjpegcsharp\ -module dcmjpeg -namespace dcmjpeg dcmjpeg.i 

... 헤더 파일 (스크립트에 나열된 파일 안에 포함되어 있음)을 찾을 수 없다는 많은 오류가 발생합니다. 예를 들어, "include/dcmtk/dcmjpeg/ddpiimpl.h"헤더 파일은 완전히 다른 위치에있는 "dcmtk/config/osconfig.h"파일을 포함합니다.

DCMTK 라이브러리의 소스 코드에있는 C++ 헤더 파일이 여러 폴더에 분산되어 있으며 서로를 볼 수 없다는 것이 문제입니다. 간단한 해결책이 있습니까? SWIG가 DCMTK 소스의 루트 디렉토리에있는 헤더 파일을 자동으로 재귀 적으로 검색하도록 강제 할 수 있습니까?

가 다른 주요 DICOM의 tookit (GDCM가) 이미 C 번호가 있습니다

+0

일반적으로 가능한 경우 SWIG에 포함 옵션을 피하는 것이 좋습니다. 필요하다면 -I를 사용하여 GCC에서와 같은 방법으로 검색 경로를 설정할 수 있습니다. – Flexo

답변

1

난 당신이 DCMTK에 대해 구체적으로 질문, 그래서 그러나이 정보는 당신이나 다른 사람을 위해 유용 할 수 있습니다, 그 선택을 위해 아주 좋은 이유가있을 수 알고 SWIG를 사용하여 작성된 래퍼. GDCM은 Dicom IO를 위해 대형 제품에 사용되는 성숙한 Dicom 라이브러리입니다. ITK ..

2

또한 FO-DICOM (이전 mDCM) 및 ClearCanvas API (mDCM을 기반으로 작성 됨)를 확인하십시오. C# 용으로 포장 된 DCMTk보다 훨씬 쉽게 작업 할 수 있습니다.