Re: [ROOT] checksum problem with clases with strings

From: Rene Brun (Rene.Brun@cern.ch)
Date: Thu Feb 13 2003 - 09:37:45 MET


Hi Angela,

You get this Warning if you modify your file SClass.h after having generated the
file test.root. If you modify the header file, you must change the ClassDef
version number.

I ran your test without any problem.

Rene brun

Angela Wyatt wrote:
> 
> Hi,
> 
> I have a class which contains strings as the members and I write it into a
> root file during the execution of some compiled code.  Later I want to
> print it out, so I made a .so containing the class which I load in, then
> I open my file. When I open it I get a checksum warning. I don't get this problem
> if I use a TString. Is there something extra I need to do?? I get some message about
> converting basic_string's to strings so maybe this is where I'm going wrong.
> 
> Thanks very much for any help,
> 
>  Angela
> 
> --------------------------------
> I have attached some test code.
> 
> I do:
> 
> > gmake
> > Validation
> > root
> 
> root [0] .L analibs.so
> root [1] TFile f("test.root");
> 
> WARNING, the StreamerInfo of class SClass read from file test.root
>         has the same version (=1) as the active class
>         but a different checksum.
>         You should update the version to ClassDef(SClass,2).
>         Do not try to write objects with the current class definition,
>         the files will not be readable.
> 
> root [2] SClass* test = (SClass*) f->Get("SClass");
> Cannot convert TMyName from
> type:basic_string<char,char_traits<char>,allocator<char> > to type:string, skip element
> 
>   --------------------------------------------------------------------------------
>                      Name: Validation.cxx
>    Validation.cxx    Type: Plain Text (TEXT/PLAIN)
>                  Encoding: BASE64
> 
>                       Name: SClassLinkDef.h
>    SClassLinkDef.h    Type: Plain Text (TEXT/PLAIN)
>                   Encoding: BASE64
> 
>                Name: SClass.h
>    SClass.h    Type: Plain Text (TEXT/PLAIN)
>            Encoding: BASE64
> 
>                  Name: SClass.cxx
>    SClass.cxx    Type: Plain Text (TEXT/PLAIN)
>              Encoding: BASE64
> 
>                Name: Makefile
>    Makefile    Type: Plain Text (TEXT/PLAIN)
>            Encoding: BASE64



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:09 MET