[Dcmlib] Strange error when using gdcm 1.3 in MS programs (con't)
Vincent Daanen
vincent.daanen at imag.fr
Tue Feb 28 09:56:54 CET 2006
I just run my test program and notice this error message :
" Error: In C:\DevTools\gdcm\src\gdcmDict.cxx, line 147, function <unknow>
Already present:fffe|e0dd "
I should have failed something but what ??
Vincent
Vincent Daanen a écrit :
> Hi gdcm-users,
>
> I wrote a small piece of code which is running perfectly in a small
> test program.
> When integrating this code in a 'big' MFC M$ application, the appli
> terminated immediatly with this strange error causes :
>
> std::operator<<(std::basic_ostream<char,std::char_traits<char> > &
> {...}, const char * 0x00ceb46c) line 291 + 3 bytes
>
> I trace in the application and this is what I point out :
>
> ------------------------------------------------------------------------------------------------------------------------------------------
>
> in gdcmGlobal.cxx :
>
> Global Glob;
>
> * Global::Global()
> {
> .....
> Dicts = DictSet::New();
> ...
> }
> * static DictSet *New() {return new DictSet();}
>
> * Dicts[PUB_DICT_NAME] = Dict::New(pubDictFile);
> * static Dict *New(std::string const &filename) {return new
> Dict(filename);}
>
> * in Dict::Dict(std::string const &filename)
> DoTheLoadingJob(from);
>
> * in void Dict::DoTheLoadingJob(std::ifstream &from)
> newEntry = DictEntry::New(group, elem, vr, vm, name);
>
> *in bool Dict::AddEntry(DictEntry *newEntry)
> if ( KeyHt.count(key) == 1 )
> {
> gdcmErrorMacro( "Already present:" << key ); <-----
> return false;
> }
>
> in * void Debug::SendToOutput(unsigned int type,std::string const
> &msg,const Base *object)
> if(!executed)
> GetOutput() << Command::GetCommandAsString(type) << ": " << msg;
> ------------------------------------------------------------------------------------------------------------------------------------------
>
>
> The error seems to come from the latest line. I do not understand what
> the hell !
> Can someone help me ??
>
> Thanks
>
> Vincent
>
>
>>> Hi all,
>>>
>>> I must read a RTDOSE file and have to parse a DS to get the
>>> informations.
>>> Since this seems to be something that happens often when reading
>>> dicom fioles, is there a function (or a method in a class) that
>>> parses DS in a double * or a std::vector <double> or anything else ?
>>
>> Hi Vincent,
>>
>> You are reaching the limits of gdcm, unfortunately. I still
>> believe that you can read those, but expect some pain :).
>> There is one hidden `feature` that prevent people from loading
>> long binary stream, so don't be suprised if after loading you DICOM
>> DS you cannot see the RTDOSE Tag. Have a look at
>> SetMaxSizeLoadEntry for more info. There is a thin layer exposed in
>> ITK for that. I still believe that in the end you should do what you
>> want because I know that people are reading 0029-1010 properly, so as
>> long as you know which field to load you should be fine.
>>
>> Good luck, keep posting,
>> Mathieu
>>
>
>
--
Vincent Daanen, PhD
Research Engineer, Post-Doctoral Position
Laboratoire TIMC/IMAG (Univ. Joseph Fourier - CNRS UMR 5525)
Equipe GMCAO
Institut d'Ingénierie de l'Information de Santé (IN3S)
Faculté de Médecine - 38706 La Tronche cedex - France
Tel: +33 (0)4 56 52 00 54 - Fax: +33 (0)4 56 52 00 55
Vincent.Daanen at imag.fr
"Les problèmes ne peuvent être résolus par
ceux dont l'horizon se limite aux réalités
quotidiennes, mais par ceux qui rêvent de
choses qui n'ont jamais existées et qui se
disent : Pourquoi Pas ?"
J-F Kennedy, 1963.
More information about the Dcmlib
mailing list