Hi Ed, The message means that you have changed something in your header file between writing and reading, but you did not upgrade your version number. Could you make a diff between the header file when you wrote the file and your current header file? Rene Ed Oltman wrote: > > Hello, > > I have a root based DLL that I use to write root files - several > objects are written, including a CLasHeader object as a member of > another object. When I use this EXACT SAME DLL to read the root > file I wrote, I get the following warning. > > Warning in <TStreamerInfo::BuildCheck>: > The StreamerInfo of class CLasHeader read from file > v:\Leap\HitData\R03067.rhit > has the same version (=4) as the active class but a different > checksum. > You should update the version to ClassDef(CLasHeader,5). > Do not try to write objects with the current class definition, > the files will not be readable. > > I'm puzzled - I use the same class definitions to > read and write, but when I read I'm told I should'nt use it to > write. Please advice, Thanks. > > Ed Oltman > > Here's a bunch of Details: > > I am using win32 version of root v3.05/3 on Win2k - binaries from cern. I > have a dll (VC 6.0) which contains all of my classes - I built it w/ likdef > containing the line: > > #pragma link C++ class CLasHeader-; > > where CLasHeader, derived from TObject, contains > > #if !defined(__CINT__) || defined(__MAKECINT__) > ClassDef(CLasHeader,4) > #endif > > in the class definition and the Streamer is > > void CLasHeader::Streamer(TBuffer &R__b) > { > // Stream an object of class CLasHeader. > > if (R__b.IsReading()) { > CLasHeader::Class()->ReadBuffer(R__b, this); > } else { > CLasHeader::Class()->WriteBuffer(R__b, this); > } > } > > Here's my interaction with root when I try to read the file: > > C:\Release 6.04.73\CompiledRoot>root > the current keyboard layout is 437 > ******************************************* > * * > * W E L C O M E to R O O T * > * * > * Version 3.05/03 11 March 2003 * > * * > * You are welcome to visit our Web site * > * http://root.cern.ch * > * * > ******************************************* > > Compiled for win32. > > CINT/ROOT C/C++ Interpreter version 5.15.78, Mar 3 2003 > Type ? for help. Commands must be C++ statements. > Enclose multiple statements between { }. > root [0] .L analysis.dll > root [1] TFile *f = new TFile("v:\\Leap\\HitData\\R03067.rhit")
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:11 MET