Re: Standalone Code, scope, TControlBar

From: Valeri Fine (Faine) (fine@bnl.gov)
Date: Mon Aug 02 1999 - 19:01:45 MEST


----- Original Message ----- 
From: Jon Gans <gans@star.physics.yale.edu>
To: <roottalk@hpsalo.cern.ch>
Subject: Standalone Code, scope, TControlBar


> 
> After fixing all GUI stuff, I find the variables do not stay in scope in
> the controlbar. for example, with the following code, I get this error
> when the Test button is pressed:
> Error: No symbol x in current scope  FILE:/tmp/27101aaa_cint LINE:1
> 
> here is the code:

  There is no scope problem here. There is a problem of two C++ environments.
  one is created by your compiler at the compilation step another one is generated
  by CINT at run-time with the CINT dictionary between them.

  I think you should change your code as follows (but it would be better to redesign it)

> 
> extern void InitGui();
> VoidFuncPtr_t initfuncs[] = { InitGui, 0 };
> 
> TROOT root("richView", "Rich Viewer",initfuncs);
> 
> int main(int argc, char **argv)
> {
> 
>   TApplication * theApp = new TApplication("RichEvent", &argc, argv);
>   // TRint * theApp = new TRint("RichEvent",&argc,argv,0,0);
>   
>   int x = 10;
>  
>  TControlBar bar("vertical");

    char buffer[30];
    sprintf(buffer,"(*((int *)(0x%x)))++;",&x); // Please check this expression mat be I miscounted the brackets.
    bar.AddButton("Test", buffer, "test");

instead of yours:

>  bar.AddButton("Test", "x++;", "test");
                                        =====
>  bar.Show();
> 
>   theApp->Run();
>   return 0;
> }
> 
> moreover, if i switch to TRint instead of TApplication i get:
> undefined reference to `TRint::TRint(char *, int *, char **, void *, int)'
> 
> I know TRint.h is included because if i comment out the include line a get
> many more errors.

   At this point I would advice going back to the "regular" ROOT first.
  This may simplify your life a lot.
 
   Hope this helps,
                                      Valery

> Jonathan Gans    Home: 516 344 1265
> Brookhaven National Lab                            Work: 516 344 7405 
> Building 902b, Room 11                   Fax/Voice Mail: 516 213 4967 (LI)
> Upton, NY 11973                            (Via Email)   718 247 2926 (NYC)

=================================================================
Dr. Valeri Faine (Fine)
    -------------------          Phone: +1 516 344 7806
Brookhaven National Laboratory   FAX  : +1 516 344 4206
Bldg. 510A /STAR                 mailto:fine@bnl.gov
Upton, New York, 11973-5000      http://nicewww.cern.ch/~fine



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:37 MET