[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