[Dcmlib] c++: string

Mathieu Malaterre Mathieu.Malaterre at creatis.insa-lyon.fr
Tue Sep 16 15:14:03 CEST 2003


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":

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




More information about the Dcmlib mailing list