Hi Marc,
Remove the statement
gROOT->Reset();
from your function sqark. This deletes all the global symbols defined
up to this point. !!
gROOT->Reset() is a useful instruction only in unnamed macros to cleanup
the global definitions in case one executes this macro several times.
Rene Brun
kamps wrote:
>
> There's probably a good reason on page 1 of the introduction that tells me
> this is wrong :
>
> ---------------------------------------------------
>
> const size_t BIG = 1000;
>
> void sqark()
> {
>
> printf("Finding the squashing function\n");
>
> gROOT->Reset();
> c1 = new TCanvas("c1","Canvas squash",200,10,600,480);
> TPad pad1("Large view","pad1",0.05,0.52,0.95,0.97);
> TPad pad2("Small view","pad2",0.05,0.02,0.95,0.47);
>
> pad1.Draw();
> pad2.Draw();
>
> char buffer[BIG];
> }
>
> ---------------------------------------------------
> but I don't see it. It is in a file sqark.C. The error message is:
> #### error message #######
> Non-static-const variable in array dimention FILE:D:\ROOT\macros\sqark.C
> LINE:20
> (cint allows this only in interactive command and special form macro which
> is special extension. It is not allowed in source code.
> #### end of errormessage ######
>
> OK. Changing the definition to static const size_t BIG doesn't help though.
> And if I have to use
> a special extension, I'd like to know which one. I have gone through the
> most basic CINT documentation but could not find an obvious hint to this
> problem.
>
> I could change this style of coding easily, but later on I have to use a
> float(*func) (float)
> in 3rd party software. I can only pass a parameter to this function via
> global data, this is
> also giving me trouble. Are there general guidelines for declaring global
> variables or arrays
> in macro's ?
>
> Running ROOT on WinNt 4.0
>
> Marc
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:27 MET