Wow a pathname longer than 1024 ! Anyway, fix is now in CVS. Cheers, Fons. Pere Mato wrote: > Valeri, Fons, > > I did check ROOTSYS and PATH environment variables and everything is > according to your indications. I even download Valeri's installation just to > see if there was a problem with mine. Also the changed Root.ShowPath to true > but it didn't help because the crash happens before anything is printed. > > Debugging at assembler level I noticed that the access violation occurs in > the method TWinNTSystem::Which() that is called by TSystem::Load() when not > full path given. This method expects a maximum PATH length of 1024 (the > value of kMAXPATHLEN) and unfortunately by PATH was longer than that!!! > Reducing the PATH to less than 1024 it works. > > Taking into account the PATH on Windows can be longer than 1024 (DOS limit > is at 2048 I think) I would suggest to change the limit or put better > protection. > > Thanks for your hints, > > Pere > > >>-----Original Message----- >>From: owner-roottalk@pcroot.cern.ch >>[mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Valeri Fine >>Sent: 16 January 2002 18:13 >>To: Pere Mato; Roottalk >>Subject: Re: [ROOT] Loading ROOT libraries on Windows >> >> >> >>----- Original Message ----- >>From: "Pere Mato" <Pere.Mato@cern.ch> >>To: "Roottalk" <roottalk@pcroot.cern.ch> >>Sent: Wednesday, January 16, 2002 7:43 AM >>Subject: [ROOT] Loading ROOT libraries on Windows >> >> >> >>>Hello, >>> >>> I am trying to load standard ROOT libraries within a C++ >>> >>module using the >> >>>method TSystem::Load(). I seems that it works only if I put the >>> >>full path >> >>>where the library is. If I use only the library name it >>> >>generates an "access >> >>>violation" even if I have in the PATH the location where the >>> >>libraries are. >> >>> gSystem->Load("libHist") // Access violation! >>> gSystem->Load("S:/sw/ROOT/v3.01/nt4/root/bin/libHist.dll") // Works!! >>> >>> >> What is your environment ? Before asking Windows to load DLL >>ROOT checks the access >> to that library on its own >> >> In this case the path to look up is picked from the >>system.rotor file. The later itself is found under >> %ROOTSYS%/etc. To get the "Windows" behavior the %ROOTSYS%\bin >>should be in your PATH >> and ROOT search path (within ".rootrc" file) should include $PATH. >> >>Anyway first make sure your env variables do match that ? >> >> >>You may want to find system.rootrc and edit it to replace >> >>Root.ShowPath: false >> >>with >> >>Root.ShowPath: true >> >>Then you should get some extra output from ROOT. That may help >>us to sort things out. >>I woiuld recommenr you to install ROOT from >> >>http://www.usatlas.bnl.gov/~fine/downloadRoot.html >> >>This should set your env properly and automatically. >> >>Hope this helps, >> >> Valeri >> >> >>> Any explanation? >>> >>>Pere >>> >>>------------------------------------------------------------ >>>Pere Mato CERN, EP Division, CH 1211 Geneva 23, Switzerland >>> e-mail: Pere.Mato@cern.ch tel: +41 22 76 78696 >>> fax: +41 22 76 79425 gsm: +41 79 20 10855 >>> >>> >>> >>> >> > -- Org: CERN, European Laboratory for Particle Physics. Mail: 1211 Geneve 23, Switzerland E-Mail: Fons.Rademakers@cern.ch Phone: +41 22 7679248 WWW: http://root.cern.ch/~rdm/ Fax: +41 22 7679480
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:38 MET