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