Dear Rooters. I create an application (VC++) and then open
a canvas and the plot a pad inside the canvas. The function runs fine. But
after I call the function approx 20 times (via a button press) the program
crashes with 'memory could not be accessed...' error. I would appreciate it
if you can see what I'm doing wrong in the code below. Is there a way to make shure or check whether root cleans up it's self properly? Thanks
Dimitris
// global.h: interface for the myclass class.
//
//////////////////////////////////////////////////////////////////////
class TApplication;
class Global {
public:
Global();
~Global();
int Report(void);
private:
TApplication *canv;
};
//////Global.cpp
#include <fstream.h>
#include <stdlib.h>
#include <iostream.h>
#include "Global.h"
#include "TRoot.h"
#include "TApplication.h"
#include "TCanvas.h"
#include "TH1.h"
#include "TH2.h"
#include "TFile.h"
#include "TBrowser.h"
#include "TTree.h"
#include "TF1.h"
//#include "afx.h"
#include "TKey.h" //Must be after afx include since they both have a GetClassName member!
#include "A.h"
#include "A_cint.h"
Global::Global() {
canv = new TApplication("App", 0, 0);
}
Global::~Global() {
Int_t status=0;
canv->Terminate(status);
}
Int_t Global::Report()
{
TCanvas *c = new TCanvas("c", "The Hello Canvas", 800, 600);
TPad *pad1 = new TPad("pad1","The pad with the function",0.03,0.062,0.98,0.92,21);
pad1->Draw();
pad1->cd();
c->Update();
canv->Run(kTRUE);
if (pad1) {
pad1->Clear();
pad1->Close();
delete pad1;
}
if (c) {
c->Clear();
c->Close();
delete c;
}
return 0;
}
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:37 MET