[Dcmlib] c++: string
Jean-Pierre Roux
Jean-Pierre.Roux at creatis.insa-lyon.fr
Tue Sep 16 16:27:05 CEST 2003
Quoting Mathieu Malaterre <Mathieu.Malaterre at creatis.insa-lyon.fr>:
> Salut les hackers/gdcmeux,
>
> Je n'arrive pas à faire marcher gdcm sous win32 en mode debug.
>
> C'est cette instruction coupable:
>
> const char *res = GdcmHeader.GetPubElValByNumber(0x0008, 0x0016);
>
> en effet lorsque le champ n'est pas trouvé gdcm renvoi "gdcm::Unfound":
Compte tenu du nombre d'occurences de
return "gdcm::Unfound";
ne pourrait-on pas declarer cette chaine en global (en meme temps que gdcmDebug,
etc) et lui affecter sa valeur dans gdcmGlobal::gdcmGlobal ?
Ou bien est-ce une mauvaise idée?
>
> string gdcmElValSet::GetElValueByNumber(guint16 group, guint16 element) {
> TagKey key = gdcmDictEntry::TranslateToKey(group, element);
> if ( ! tagHt.count(key))
> return "gdcm::Unfound";
> return tagHt.find(key)->second->GetValue();
> }
>
> Est-ce que cette fonction peut etre utilisée sainement, vu que le chaine
> "gdcm::Unfound" est locale à la fonction GetElValueByNumber ? Pour moi
> la string renvoyée (=objet temporaire) est détruite à la fin de
> l'instruction et donc 'res' contient un mauvais pointeur...
>
> Dans les détails amusant: je n'arrive pas a reproduire le problème sous
> linux ni en VC++ mode release...
>
> Merci en tout cas de vos commentaires,
> mathieu
>
> _______________________________________________
> Dcmlib mailing list
> Dcmlib at creatis.insa-lyon.fr
> http://www.creatis.insa-lyon.fr/public/mailman/listinfo/dcmlib
>
-------------------------------------------------
This mail sent through IMP: http://horde.org/imp/
More information about the Dcmlib
mailing list