RE: [ROOT]

From: Valeri Fine (fine@bnl.gov)
Date: Wed Jan 07 2004 - 18:23:04 MET


I think the reason for your troubles is the "gdk" version.
Did you say you did use very "gdk" in past?

"gdk' has a slightly different thread model. That may have caused your
troubles. 
(I am not sure I am not familiar with GDK thread model).
The problem is to bring the window on the Windows screen the application
must call any WIN32 API from the GUI thread.  That was always fulfilled
with either Win32 or Qt ( from http://root.bnl.gov ) ROOT version under
Windows regardless of the "theApp.Run()" presence. 

   Hope this helps
----
Best regards
                   Valeri


> -----Original Message-----
> From: owner-roottalk@pcroot.cern.ch
[mailto:owner-roottalk@pcroot.cern.ch] On
> Behalf Of Brandon Kohn
> Sent: Wednesday, January 07, 2004 9:40 AM
> To: ANCIANT E.; 'roottalk@root.cern.ch'
> Subject: Re: [ROOT]
> 
> Hello,
> 
> The problem is that you need to have a TApplication instance running
an
> event loop for the canvases to work/refresh properly.
> Try adding the following to your code:
> 
> TApplication theApp(argc,argv);
> 
> 
> followed by (at the end of all your code)
> 
> theApp.Run();
> 
> 
> Cheers,
> 
> Brandon
> 
> 
> ----- Original Message -----
> From: "ANCIANT E." <eric_anciant@sodern.fr>
> To: "'roottalk@root.cern.ch'" <roottalk@pcroot.cern.ch>
> Sent: Wednesday, January 07, 2004 2:09 PM
> Subject: [ROOT]
> 
> 
> > Hello rooters,
> >
> > I installed root 3.10.02  /  gdk on windows 2K / Visual C++ (ver.
6),
> > after using for a couple of year root 3.02
> > and now I cannot get Canvas to pop up :
> >
> > I got the "idenfied problem with old version of VC6", but until I
get the
> > Service pack installed, I managed
> > to have things compile with some workarround
> >
> > I also saw on the roottalk digest that proper compilation options
are of
> > importance
> > for the newer version of root (for root3.02 I used default Visual
options,
> > and
> > it worked fine)
> > So I tried to stick to the options given in Makefile.win32
> >
> > The compilator command obtained by tricking trough Visual GUIs is :
> >
> > cl /G5 /MD /GR /I "p:\root_v3.10.02.win32gdk_Debug/include" /D
"WIN32" /D
> > "_DEBUG" /D "_WIN32" /D "_MT" /D "VISUAL_CPLUSPLUS" /D "_WINDOWS"
> > /Fo"Debug/" /Fd"Debug/" /FD /EHsc /c
> >    "P:\APS_LOCAL\TESTROOT\TestConsole\TestConsole.cpp"
> >
> > the linker options are (however I don't know how visual internaly
> > differentiate
> > Lib and Link commands) :
> >
> > kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib
advapi32.lib
> > shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
> > kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib
advapi32.lib
> > shell32.lib ole32.lib oleaut32.lib
> > uuid.lib odbc32.lib odbccp32.lib gdk-1.3.lib glib-1.3.lib
libCint.lib
> > libCore.lib libEG.lib libEGPythia6.lib libfreetype.lib libFumili.lib
> > libGeom.lib libGeomPainter.lib libGpad.lib libGraf.lib libGraf3d.lib
> > libGui.lib libHbook.lib libHist.lib libHi
> > stPainter.lib libHtml.lib libMatrix.lib libMinuit.lib libMLP.lib
> > libPhysics.lib libPostscript.lib libProof.lib libProofGui.lib
libRFIO.lib
> > libRGL.lib libRint.lib libTable.lib libTree.lib libTreePlayer.lib
> > libTreeViewer.lib libVMC.lib libWin32gdk.lib
> >  /pdb:none /debug /machine:IX86 "/out:Debug/TestConsole.exe"
> > "/libpath:p:/root_v3.10.02.win32gdk_Debug/lib" -opt:ref
> > /subsystem:console,4.0
> > .\Debug\TestConsole.obj
> >
> >
> > My test example :
> >
> > //
> > #include "TPad.h"
> > #include "TSystem.h"
> > #include "TEnv.h"
> > #include "TH1.h"
> > #include "TCanvas.h"
> >
> > #include <iostream>
> > using namespace std;
> >
> > int main(int argc, char* argv[])
> > {
> > cout << " Using ROOTSYS " << gSystem->Getenv("ROOTSYS") << endl;
> > cout << " Using DYNAMIC PATH "
> > << gEnv->GetValue("WinNT.*.Root.DynamicPath","NOT DEFINED")
> > << endl;
> > cout << " Using MACRO PATH "
> > << gEnv->GetValue("WinNT.*.Root.MacroPath","NOT DEFINED") <<
> > endl;
> >
> > TCanvas can("toto","titi",300,300);
> >
> > TH1F histo("histo","histo",10,0,10);
> > histo.Draw();
> > gPad->Update();
> > int i;
> > cin >> i;
> >
> > return 0;
> > }
> >
> > THE CONSOLE OUPUT IS :
> >
> >  Using ROOTSYS p:\root_v3.10.02.win32gdk_Debug
> >  Using DYNAMIC PATH
> >
>
.;p:\root_v3.10.02.win32gdk_Debug/bin;C:\WINNT\system32;C:\WINNT;C:\WINN
T\Sy
> >
>
stem32\Wbem;C:\DLL-PWB-OLD;C:\DLL-PWB-NEW;w:\oracle\ora81\bin;w:\oracle\
jre\
> >
>
1.1.7\bin;W:\ORAWIN\BIN;p:\root_v3.10.02.win32gdk_Debug\bin;p:\vni\cnl50
\bin
> >
>
;p:\rcs;p:\AnciantLocal\FTCCDSensor;p:\anciantlocal\simualgo\main\bin;p:
\bin
> > Using MACRO PATH .;p:\root_v3.10.02.win32gdk_Debug/macros
> > Warning in <TWinNTSystem::SetProgname>: Wrong Program path
> >
> > Note the Warning : I found a reference of such a warning in Roottalk
> Message
> > from Marc de Kamps of Feb 25, 2003
> > the answer of Fons Rademakers hinted on problems in Dynamic and
Macro
> paths
> > which I checked, but I did not find anything looking wrong to me.
> > (in particular I did not find any .rootrc file in my disk )
> >
> > I would realy appreciate some help
> >
> > thanks in advance
> >
> > eric
> >
> >
> >
> > PS :
> >
> > The following program using Root 3.02 worked :
> >
> > // TestConsole.cpp : Defines the entry point for the console
application.
> > //
> > #include "TPad.h"
> > #include "TSystem.h"
> > #include "TEnv.h"
> > #include "TH1.h"
> > #include "TCanvas.h"
> >
> > #include <iostream.h>
> >
> > int main(int argc, char* argv[])
> > {
> > cout << " Using ROOTSYS " << gSystem->Getenv("ROOTSYS") << endl;
> > cout << " Using DYNAMIC PATH "
> > << gEnv->GetValue("WinNT.*.Root.DynamicPath","NOT DEFINED")
> > << endl;
> > cout << " Using MACRO PATH "
> > << gEnv->GetValue("WinNT.*.Root.MacroPath","NOT DEFINED") <<
> > endl;
> >
> > TCanvas can("toto","titi",300,300);
> >
> > TH1F histo("histo","histo",10,0,10);
> > histo.Draw();
> > gPad->Update();
> > int i;
> > cin >> i;
> >
> > return 0;
> > }
> >
> > The compilation OPTIONS were defaults of visual :
> >
> > /nologo /MLd /W3 /Gm /vmg /GX /ZI /Od /I "$(ROOTSYS)/include" /D
"WIN32"
> /D
> > "_DEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"Debug/TestConsole.pch" /YX
> /Fo"Debug/"
> > /Fd"Debug/" /FD /GZ /c
> >
> > The link OPTIONS were defaults of Visual :
> >
> > kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib
advapi32.lib
> > shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
> > kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib
advapi32.lib
> > shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
> > libCint.lib libCore.lib libEG.lib libEGPythia.lib libGpad.lib
libGraf.lib
> > libGraf3d.lib libGui.lib libHist.lib libHistPainter.lib libHtml.lib
> > libMatrix.lib libMinuit.lib libPhysics.lib libPostscript.lib
libProof.lib
> > libRFIO.lib libRGL.lib libRint.lib libTree.lib libTreePlayer.lib
> > libTreeViewer.lib /nologo /subsystem:console /incremental:yes
> > /pdb:"Debug/TestConsole.pdb" /debug /machine:I386
> > /out:"Debug/TestConsole.exe" /pdbtype:sept
/libpath:"p:/root_v3.02/lib"
> >
> > I got no warning at compilation
> >
> > The output of the executable on the console is :
> >
> >  Using ROOTSYS p:\root_v3.02
> >  Using DYNAMIC PATH
> >
>
.;p:\root_v3.02/bin;C:\WINNT\system32;C:\WINNT;C:\WINNT\System32\Wbem;C:
\DLL
> > -PWB-OLD;C:\DLL-PWB-NEW;w:\oracle\ora81\bin;w:\oracle\jre\1.1.7\
> >
>
bin;W:\ORAWIN\BIN;p:\root_v3.02\bin;p:\vni\cnl50\bin;p:\rcs;p:\AnciantLo
cal\
> > FTCCDSensor;p:\anciantlocal\simualgo\main\bin;p:\bin
> >  Using MACRO PATH .;p:\root_v3.02/macros
> >  the current keyboard layout is 850
> >
> > And I got my canvas pop up !
> >
> >
> >



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:05 MET