3

SWIG を使用してDCMTKライブラリ (C++ で記述)の C# ラッパーを作成したいと考えています。DCMTKの完全なソース コードがありますが、解決できない問題が 1 つあります...

SWIG のスクリプトは次のようになります。

#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 を実行します。

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++ ヘッダー ファイルが複数のフォルダーに散らばっており、それらが「相互に認識されない」ことです。そのための簡単な解決策はありますか?DCMTK ソースのルート ディレクトリにあるヘッダー ファイルを SWIG に自動的かつ再帰的に検索させるにはどうすればよいでしょうか。

4

2 に答える 2

3

また、FO-DICOM (旧 mDCM) と ClearCanvas API (mDCM 上に構築) もチェックしてください。C# 用にラップされた DCMTk よりもはるかに簡単に使用できることがわかりました。

于 2012-12-19T18:56:12.427 に答える
2

DCMTKについて具体的に質問されたので、その選択には非常に正当な理由がある可能性がありますが、この情報はあなたや他の人にとって役立つ場合があります。

他の主要なDicomtakeit(GDCM)には、SWIGを使用して作成されたC#ラッパーがすでにあります。GDCMは、 ITKなどのDicomIOの大規模製品で使用される成熟したDicomライブラリです。

于 2012-12-17T18:02:44.587 に答える