Hello Michael, > As one of the DCMTK developers I maybe can help (or contact the > adequate person of the DCMTK team), so let me know what kind of > problems you encountered.
Nice, here they are: (1) UID_FINDGeneralPurposeWorklistInformationModel is gone (no changelog entry though) My workaround: I defined it to its old value "1.2.840.10008.5.1.4.32.1" in the source file where it was used. (2) The original code had LOG4CPLUS_BEGIN_SYNCHRONIZE_ON_MUTEX( getLogLog().mutex ) ... LOG4CPLUS_END_SYNCHRONIZE_ON_MUTEX; After adding the DCMTK_ prefix it turned out that the mutex is now private: ERROR: <<<< In file included from /home/gerddie/src/External/ginkgocadx-3.7.1.1573.41/src/cadxcore/main/controllers/log4cplus/guiappender.cpp:15:0: /usr/include/dcmtk/oflog/helpers/loglog.h: In member function ‘virtual void gnkLog4cplus::GUIAppender::append(const dcmtk::log4cplus::spi::InternalLoggingEvent&)’: /usr/include/dcmtk/oflog/helpers/loglog.h:132:27: error: ‘dcmtk::log4cplus::thread::Mutex dcmtk::log4cplus::helpers::LogLog::mutex’ is private thread::Mutex mutex; ^ /home/gerddie/src/External/ginkgocadx-3.7.1.1573.41/src/cadxcore/main/controllers/log4cplus/guiappender.cpp:116:58: error: within this context DCMTK_LOG4CPLUS_BEGIN_SYNCHRONIZE_ON_MUTEX( getLogLog().mutex ) >>>> I removed the locking calls in the hope that somehow whatever needs to be locked there is now locked inside the logger class, I now get some async-X-errors when exiting the application. It seems though, that is this case the original developers mis-used this mutex to also handle the access to their GUI-based log, so I guess this is something that I would have to correct independently of DCMTK. (3) (This is the big one) For some reason dcmtk-3.6.1-20150924 has an hiccup in dcmth/oflog/ logger.h and logmacro.h that is related to UNICODE: ERROR<<<< In file included from /usr/include/dcmtk/oflog/logmacro.h:37:0, from /usr/include/dcmtk/oflog/oflog.h:29, from /usr/include/dcmtk/dcmdata/dctypes.h:27, from /usr/include/dcmtk/dcmdata/dctk.h:28, from /home/gerddie/src/External/ginkgocadx -3.7.1.1573.41/src/cadxcore/main/controllers/dcmtk/libi2d/d2dcommon.h:5 , from /home/gerddie/src/External/ginkgocadx -3.7.1.1573.41/src/cadxcore/main/controllers/dcmtk/libi2d/document2dcm. h:28, from /home/gerddie/src/External/ginkgocadx -3.7.1.1573.41/src/cadxcore/main/controllers/dcmtk/dicomimg2dcm.cpp:38: /usr/include/dcmtk/oflog/tracelog.h: In constructor ‘dcmtk::log4cplus::TraceLogger::TraceLogger(const dcmtk::log4cplus::Logger&, const tstring&, const char*, int)’: /usr/include/dcmtk/oflog/tracelog.h:59:79: error: invalid conversion from ‘const wchar_t*’ to ‘char’ [-fpermissive] logger.forcedLog(TRACE_LOG_LEVEL, DCMTK_LOG4CPLUS_TEXT("ENTER: ") + msg, file, line); >>>>> Later on I get: ERROR: <<<< In file included from /usr/include/dcmtk/oflog/oflog.h:28:0, from /usr/include/dcmtk/dcmdata/dctypes.h:27, from /usr/include/dcmtk/dcmdata/dctk.h:28, from /home/gerddie/src/External/ginkgocadx -3.7.1.1573.41/src/cadxcore/main/controllers/dcmtk/libi2d/d2dcommon.h:5 , from /home/gerddie/src/External/ginkgocadx -3.7.1.1573.41/src/cadxcore/main/controllers/dcmtk/libi2d/document2dcm. h:28, from /home/gerddie/src/External/ginkgocadx -3.7.1.1573.41/src/cadxcore/main/controllers/dcmtk/dicomimg2dcm.cpp:38: /usr/include/dcmtk/oflog/logger.h:112:23: note: candidate: static dcmtk::log4cplus::Logger dcmtk::log4cplus::Logger::getInstance(const tstring&) static Logger getInstance(const log4cplus::tstring& name); ^ /usr/include/dcmtk/oflog/logger.h:112:23: note: no known conversion for argument 1 from ‘const tchar* {aka const wchar_t*}’ to ‘const tstring& {aka const OFString&}’ /usr/include/dcmtk/oflog/logger.h:126:23: note: candidate: static dcmtk::log4cplus::Logger dcmtk::log4cplus::Logger::getInstance(const tstring&, dcmtk::log4cplus::spi::LoggerFactory&) static Logger getInstance(const log4cplus::tstring& name, spi::LoggerFactory& factory); >>>> I tried to define UNICODE at the compile command line, I tried moving the includes up so that wxWidgets doesn't provide defines that may mix up the code, but to no avail: Finally, since these loggers are not used, I defined the include guards before including anything from dcmtk to avoid that these files are read at all, i.e. I defined: #define DCMTK_LOG4CPLUS_TRACELOGGER_H #define DCMTK_LOG4CPLUS_LOGGING_MACROS_HEADER_ Then I prayed for forgiveness and all compiled and linked. I'd be grateful for any help, be advised though, that the developers of ginkgocadx did a lot of dirty coding, e.g. copying files from original libraries and then slightly adjusting them. For example they provided a copy of offile.h with their own changed implementation of OFFile without changing the class name or the header guard define. That means it is quite possibe that this last error is a result of such a mixup and the only way to find this is digging through the preprocessed source. ... but first I have to fix the VTK transition bugs. Best, Gert