Florian Schopper wrote: > > Dear Rooters, > > when I want to add my classes to root, I run into the following problem > with structs: > > Assume the following as Headerfile.h: > ///////////////////////////////////////////////// > #include "TObject.h" > > struct v550Map { > unsigned short CRAMintr; /* CRAMS Interrupt Register W*/ > unsigned short CRAMstat; /* CRAMS Status Register RW*/ > unsigned short CRAMnumch; /* Number of channels RW*/ > unsigned short CRAMclear; /* CRAMS Module Clear W*/ > unsigned char PADDR1[226]; /* hole R */ > }; > > class VmeModule : public TObject > { > private: > int VmeAdress; > int VmeSize; > > struct v550Map *Map; // Actual Registers > struct v550Map Dummy; // If no hardware connected > > VmeModule(void){} > ClassDef(VmeModule,1) > } ; > //////////////////////////////////////////////////// > > The problem starts when creating the directory files: > > rootcint -f vme_Cint.cxx -c testst.h LinkDef.h > Note: operator new() masked 1c > Note: operator delete() masked 1c > *** Datamember VmeModule::Dummy: object has no Streamer() method (need > manual intervention) > > Sometimes I get the same for the *Map too. > I don't need Object I/O for these structs, but I can't load the .so > when Dummy or *Map is used. > If I uncomment the structs, everything is fine for the rest of the > classes. > Florian, In your header file, specify ClassDef(VmeModule,0) if you do not want I/O for your class. You get unsatisfied external references because you do not have an implementation file with the statement ClassImp(VmeModule). For more details, see URL http://root.cern.ch/root/Using.html Rene Brun
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:37 MET