Оболочка C # для библиотеки DCMTK с использованием SWIG

Я хочу создать оболочку C # для DCMTK библиотека (которая написана на C ++) с использованием SWIG. У меня есть полный исходный код DCMTK, но у меня есть одна проблема, которую я не могу решить …

Мой скрипт для 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», который находится в совершенно другом месте.

Проблема в том, что файлы заголовков C ++ в DCMTK Исходный код библиотеки разбросан по нескольким папкам, и они «не видят друг друга».
Есть ли простое решение для этого? Может быть, заставить SWIG автоматически и рекурсивно искать файлы заголовков в некотором корневом каталоге источника DCMTK?

3

Решение

Кроме того, проверить FO-DICOM (ранее mDCM) и ClearCanvas API (построенный на mDCM). Я обнаружил, что с ними гораздо проще работать, чем с DCMTk, обернутым для C #.

3

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

Я знаю, что вы спрашивали конкретно о DCMTK, поэтому для такого выбора могут быть очень веские причины, однако эта информация может быть полезна вам или другим:

Другой главный Dicom Takeit (GDCM) уже есть оболочка C #, созданная с помощью SWIG. GDCM — это зрелая библиотека Dicom, используемая в больших продуктах для Dicom IO, например, ИТК..

2

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