[ROOT]

From: ANCIANT E. (eric_anciant@sodern.fr)
Date: Wed Jan 07 2004 - 14:09:16 MET


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:\WINNT\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:\AnciantLocal\
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