Re: ROOT 2.23.11 + Win98: dll error on root startup

From: Matthew D. Langston (langston@SLAC.stanford.edu)
Date: Sun Jan 16 2000 - 19:52:43 MET


Hi Valerie,

I don't have a .rootrc, other than the one that comes with the ROOT v.
2.23.11 distribution (i.e. the one in the tutorials subdirectory).  I
don't know if root is reading this file or not, but I tried moving it
out of the way temporarily (I renamed it to xxx.rootrc), and I got
exactly the same error messages (i.e. the message "dll does not exist or
wrong file extension (.dll)").

Are you able to successfully run ROOT v. 2.23.11 on Win98, or have you
only tested it under WinNT?  It would be nice if someone else on the
list could confirm the same behavior I am seeing.  I honestly believe
that I have a virgin install of ROOT v. 2.23.11 on my Win98 system - the
laptop is brand new (i.e. so it couldn't have any previous versions of
ROOT laying around, nor any stray .rootrc files, etc.), I downloaded
ftp://root.cern.ch/root/root_v2.23.x86.Windows_NT.tar.gz, unpacked it
with WinZip, set ROOTSYS and PATH as I already mentioned, and typed
"root" at the MSDOS prompt.  Given this information, it would seem that
the Win32 build of ROOT v. 2.23.11 may be broken in some way, at least
under Win98.

Any other insights would be appreciated.  Thanks for your help Valeri

----- Original Message -----
From: "Valeri Fine (Faine)" <fine@bnl.gov>
To: "Matthew D. Langston" <langston@SLAC.Stanford.EDU>; "roottalk"
<roottalk@pcroot.cern.ch>
Sent: Saturday, January 15, 2000 6:47 PM
Subject: Re: ROOT 2.23.11 + Win98: dll error on root startup


> Hello,
>
> > ROOT v 2.23.11 outputs the following error messages when root is
started
> > under win98.  I have set ROOTSYS properly, added %ROOTSYS%\bin to my
> > PATH, and started root from the MSDOS prompt by simply typing
"root".
> > Is there anything else I am doing wrong to get ROOT 2.23.11 to work
> > properly  under Win98?
> >
>   . . .
> > Error in <TWinNTSystem::DynamicPathName>: dll does not exist or
wrong
> > file extension (.dll)
>
>   . . .
>
>   The message you got came from ROOT rather from the operating system
itself.
>   Before trying to load DLL ROOT does check whether file with DLL is
available and apply its own
>  "share library path" provided by ".rootrc file.
>
> This is supplied by:
>
> const char *TWinNTSystem::GetDynamicPath()
> {   static const char *dynpath = 0;
>    if (dynpath == 0) {
>       dynpath = gEnv->GetValue("Root.DynamicPath", (char*)0);
>       if (dynpath == 0)
>          dynpath = StrDup(Form("%s;%s/bin;%s,",
gProgPath,gRootDir,gSystem->Getenv("PATH")));
>    }
>    return dynpath;
> }
>
>   This means ROOT doesn't use the system provided "PATH" if ".rootrc"
file  contains a defintion
>    of "Root.DynamicPath".
>
>    If that symbol is not defined then ROOT uses the "regular"
approach, namely it looks up "PATH" .
>    I'd like to mention that makes sense for the first DLL only. If the
loaded DLL has a reference to another
>    DLL  the "PATH" variable is used anyway. This is because Windows
("bt default") tries to load ALL DLL
>    one needs while  the UNIX loads the share library  ordered ("by
default")
>
>
> -  Could you check  your ".rootrc" file ?
>
>    Valery
>
>
>



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:17 MET