QtDCM 编译失败的可能原因是什么?
What is the probable reason for QtDCM compilation fail?
QtDCM
编译失败。我按照manual、DCMTK
和ITK
中描述的方式进行了所有编译,但是当我尝试编译QtDCM
时,它失败并出现错误:
2>QtDcmFindScu.cpp
2>D:\CPP\qtdcm\src\QtDcmFindScu.cpp(197): error C2259: 'QtDcmFindCallback': cannot instantiate abstract class
2>D:\CPP\qtdcm\src\QtDcmFindScu.cpp(197): note: due to following members:
2>D:\CPP\qtdcm\src\QtDcmFindScu.cpp(197): note: 'void DcmFindSCUCallback::callback(T_DIMSE_C_FindRQ *,int &,T_DIMSE_C_FindRSP *,DcmDataset *)': is abstract
2>D:\CPP\dcmtk-3.6.4\dcmnet\include\dcmtk/dcmnet/dfindscu.h(96): note: see declaration of 'DcmFindSCUCallback::callback'
2>D:\CPP\qtdcm\src\QtDcmFindScu.cpp(198): error C2664: 'OFCondition DcmFindSCU::performQuery(const char *,unsigned int,const char *,const char *,const char *,E_TransferSyntax,T_DIMSE_BlockingMode,int,Uint32,bool,bool,unsigned int,DcmFindSCUExtractMode,int,OFList<OFString> *,DcmFindSCUCallback *,OFList<OFString> *,const char *,const char *)': cannot convert argument 13 from 'bool' to 'DcmFindSCUExtractMode'
2>D:\CPP\qtdcm\src\QtDcmFindScu.cpp(203): note: Conversion to enumeration type requires an explicit cast (static_cast, C-style cast or function-style cast)
2>QtDcmMoveScu.cpp
2>D:\CPP\qtdcm\src\QtDcmMoveScu.cpp(373): error C2039: 'unlock': is not a member of 'GlobalDcmDataDictionary'
2>D:\CPP\dcmtk-3.6.4\dcmdata\include\dcmtk/dcmdata/dcdict.h(216): note: see declaration of 'GlobalDcmDataDictionary'
2>D:\CPP\qtdcm\src\QtDcmMoveScu.cpp(775): error C2660: 'DU_findSOPClassAndInstanceInDataSet': function does not take 4 arguments
2>D:\CPP\dcmtk-3.6.4\dcmnet\include\dcmtk/dcmnet/diutil.h(110): note: see declaration of 'DU_findSOPClassAndInstanceInDataSet'
2>D:\CPP\qtdcm\src\QtDcmMoveScu.cpp(965): error C2660: 'ASC_getAPTitles': function does not take 4 arguments
2>D:\CPP\dcmtk-3.6.4\dcmnet\include\dcmtk/dcmnet/assoc.h(328): note: see declaration of 'ASC_getAPTitles'
库src有问题吗?
难不成是我配置的时候CMake-GUI
弄错了?
我想编译QtDCM
库。
QtDCM项目好像是从2011年11月开始就没有更新过,所以建议大家也下载当时可用的DCMTK版本,即3.6.0 release.
QtDCM
编译失败。我按照manual、DCMTK
和ITK
中描述的方式进行了所有编译,但是当我尝试编译QtDCM
时,它失败并出现错误:
2>QtDcmFindScu.cpp
2>D:\CPP\qtdcm\src\QtDcmFindScu.cpp(197): error C2259: 'QtDcmFindCallback': cannot instantiate abstract class
2>D:\CPP\qtdcm\src\QtDcmFindScu.cpp(197): note: due to following members:
2>D:\CPP\qtdcm\src\QtDcmFindScu.cpp(197): note: 'void DcmFindSCUCallback::callback(T_DIMSE_C_FindRQ *,int &,T_DIMSE_C_FindRSP *,DcmDataset *)': is abstract
2>D:\CPP\dcmtk-3.6.4\dcmnet\include\dcmtk/dcmnet/dfindscu.h(96): note: see declaration of 'DcmFindSCUCallback::callback'
2>D:\CPP\qtdcm\src\QtDcmFindScu.cpp(198): error C2664: 'OFCondition DcmFindSCU::performQuery(const char *,unsigned int,const char *,const char *,const char *,E_TransferSyntax,T_DIMSE_BlockingMode,int,Uint32,bool,bool,unsigned int,DcmFindSCUExtractMode,int,OFList<OFString> *,DcmFindSCUCallback *,OFList<OFString> *,const char *,const char *)': cannot convert argument 13 from 'bool' to 'DcmFindSCUExtractMode'
2>D:\CPP\qtdcm\src\QtDcmFindScu.cpp(203): note: Conversion to enumeration type requires an explicit cast (static_cast, C-style cast or function-style cast)
2>QtDcmMoveScu.cpp
2>D:\CPP\qtdcm\src\QtDcmMoveScu.cpp(373): error C2039: 'unlock': is not a member of 'GlobalDcmDataDictionary'
2>D:\CPP\dcmtk-3.6.4\dcmdata\include\dcmtk/dcmdata/dcdict.h(216): note: see declaration of 'GlobalDcmDataDictionary'
2>D:\CPP\qtdcm\src\QtDcmMoveScu.cpp(775): error C2660: 'DU_findSOPClassAndInstanceInDataSet': function does not take 4 arguments
2>D:\CPP\dcmtk-3.6.4\dcmnet\include\dcmtk/dcmnet/diutil.h(110): note: see declaration of 'DU_findSOPClassAndInstanceInDataSet'
2>D:\CPP\qtdcm\src\QtDcmMoveScu.cpp(965): error C2660: 'ASC_getAPTitles': function does not take 4 arguments
2>D:\CPP\dcmtk-3.6.4\dcmnet\include\dcmtk/dcmnet/assoc.h(328): note: see declaration of 'ASC_getAPTitles'
库src有问题吗?
难不成是我配置的时候CMake-GUI
弄错了?
我想编译QtDCM
库。
QtDCM项目好像是从2011年11月开始就没有更新过,所以建议大家也下载当时可用的DCMTK版本,即3.6.0 release.