dcmtk-3.6.4
使用Unicode?dcmtk的编译选项里没有关于Unicode的选项,OFString的接口里明确使用了OFString(char*)作为构造函数参数,所以,我们可以假设不能够自己擅自在CMakeList.txt里增加一行
add_definitions(-DUNICODE -D_UNICODE)
来强制使用Unicode编码。
亲测:加了之后编译不过
void dcmtk::log4cplus::Logger::forcedLog(const dcmtk::log4cplus::spi::InternalLoggingEvent &) const”: 无法将参数 3 从“int”转换为“const char *”
在dcmtk的源码里是这样的:
OFLogger OFLog::getLogger(const char *loggerName)
{
OFLog_init();
// logger objects have a reference counting copy-constructor, so returning by-value is cheap
return dcmtk::log4cplus::Logger::getInstance(loggerName);
}
OFLog是基于log4cplus的,但是是自己又实现了一套。这个用char*作为参数的接口,注定不可以使用UNICODE作为编码,只能使用多字节。 OFLog不可以去掉,因为这