Re: [ROOT] Including ROOT 3.00.0x into VC++ 6.0

From: Valeri Fine (Faine) (fine@bnl.gov)
Date: Mon Mar 12 2001 - 17:44:56 MET


> Since the development of the CVS version I've not been able to include
> ROOT into simple Visual C++ 6.0 console applications. The code compiles fine,
> however, when I execute the proram I get messages like:
> (under Windows NT)

> "The application or DLL d:\Root\lib\libGPad.dll is not a valid Windows NT image"
> etc


First I'd like to mention I did not try to work with CVS version of ROOT under 
Windows myself yet.

 I found it is strange the DLL is resided within "lib" directory. The proper place for those 
 is "bin".

I mean the best place for the ROOT DLL's is that directory where the root.exe is resided.
By default the Windows looks up very that directory for DLL first.

> Seems logical since the dll files are in the lib-dir all have zero size;

> I guess I somehow need to link the dll files that reside in the bin-dir, but how ???

You can not and should not LINK with any DLL. You do link against of the export libraries. 
They have "*.lib" extension and the proper place for these libraries is some "LIB" directory
%ROOTSYS%/lib in our case.

> Did anybody solve this on their system ??

Then the ROOT DLLs must be with root.exe altogether or on your PATH.
In addition the %ROOTSYS%/bin directory must be present within "system.rootrc" file

Please, check everything is consistent. First of all DLLs are in %ROOTSYS%/bin and this directory 
is on your PATH and this directory is mentioned by "system.rootrc" file as well and the full path to 
this file is %ROOTSYS%/system.rootrc

To avoid any confusion just delete all DLLs from %ROOTSYS%/lib.

  Hope this helps,
                                     Valeri



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:39 MET