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