Add
#include "TSystem.h"
and
gSystem->Load("libTree");
as your first statement
> #include <string.h>
> #include <stdlib.h>
> #include <Riostream.h>
> #include <stddef.h>
> #include "TROOT.h"
> #include "TApplication.h"
> #include "TH1.h"
> #include "TTree.h"
> #include "TFile.h"
#include "TSystem.h"
>
> #define INPUTFILE "c:/lxplus/scratch0/Neutralino_000004_1_100000.root"
> int main(int argc, char* argv[])
> {
gSystem->Load("libTree");
> TH1F h1("h1","h1",10,0,10);
> TFile f(INPUTFILE);
> f.ls();
> f.cd("CBNT");
> gDirectory->ls();
> TTree* t1=(TTree*) gDirectory->Get("t3333");
> return 0;
> }
----
Best regards
Valeri
> -----Original Message-----
> From: owner-roottalk@pcroot.cern.ch
[mailto:owner-roottalk@pcroot.cern.ch] On
> Behalf Of Damien PRIEUR
> Sent: Thursday, May 06, 2004 1:55 PM
> To: roottalk@cern.ch
> Subject: [ROOT] Visual C++ and getting TTree from TFile
>
> Hello,
>
> I am using Root 4.00/03 compiled with win32gdk on a Win XP system.
> I am executing a self compiled program (using visual c++ 6)that
basicaly
> open an already existing file and get a TTree from it:
>
> //
> #include <string.h>
> #include <stdlib.h>
> #include <Riostream.h>
> #include <stddef.h>
> #include "TROOT.h"
> #include "TApplication.h"
> #include "TH1.h"
> #include "TTree.h"
> #include "TFile.h"
>
> #define INPUTFILE "c:/lxplus/scratch0/Neutralino_000004_1_100000.root"
> int main(int argc, char* argv[])
> {
> TH1F h1("h1","h1",10,0,10);
> TFile f(INPUTFILE);
> f.ls();
> f.cd("CBNT");
> gDirectory->ls();
> TTree* t1=(TTree*) gDirectory->Get("t3333");
> return 0;
> }
>
> The code compile fine without errors messages, but when I execute it I
get
> the following errors and I cannot access the tree stored in the file:
>
> >Warning in <TClass::TClass>: no dictionary for class TTree is
available
> >Warning in <TClass::TClass>: no dictionary for class TBranch is
available
> >Warning in <TClass::TClass>: no dictionary for class TLeafI is
available
> >Warning in <TClass::TClass>: no dictionary for class TLeaf is
available
> >Warning in <TClass::TClass>: no dictionary for class TLeafF is
available
> >TFile** c:/lxplus/scratch0/Neutralino_000004_1_100000.root
Athena
> Trees
> > TFile* c:/lxplus/scratch0/Neutralino_000004_1_100000.root
Athena
> Trees
> > KEY: TDirectory Atlfast;1 Atlfast
> > KEY: TDirectory CBNT;1 CBNT
> >TDirectory* CBNT CBNT
> > KEY: TTree t3333;1 Combined Ntuple
> >Error in <TBuffer::CheckByteCount>: object of class TNamed read too
few
> >bytes: 26 instead of 1077290
>
>
> At the link stage, I have specified the following libraries:
> libCore.lib libCint.lib libHist.lib libGraf.lib libGraf3d.lib
libGpad.lib
> libTree.lib libRint.lib libPostscript.lib libMatrix.lib libPhysics.lib
>
> I've found in the roottalk database mails from peoples that were
having
> such error messages (on MacOSX) but I was not able to find a solution
from
> these.
> I am just starting using visual c++ and I am not an expert. Have I
> missed something evident ?
>
> Thanks in advance,
> Damien.
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:08 MET