EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  <20032004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 2002  <20032004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: R3.14.2
From: "Kenneth Evans, Jr." <[email protected]>
To: "Jeff Hill" <[email protected]>, "'Andrew Johnson'" <[email protected]>
Cc: "'Anderson, Janet B.'" <[email protected]>, "'Marty Kraimer'" <[email protected]>, "Janet Anderson" <[email protected]>, "'Eric Norum'" <[email protected]>, "'Ralph Lange'" <[email protected]>, <[email protected]>, "Chris Timossi" <[email protected]>, "Ken Evans" <[email protected]>
Date: Wed, 5 Feb 2003 15:29:51 -0600
>> I would like to hear Ken, Janet's, and Chris's views on this.

>> Jeff

     My opinion is that you should use DLLS on WIN32 (SHARED_LIBRARIES=YES).
I see three ways to do this.

1. Batch file as discussed to set the PATH and start the application.

2. Putting all the DLLs needed by an application in the same directory as
the application is a good way to insure the right DLLs are used.  That is
the first place searched in the DLL search path.  This may not be
straightforward to implement in the EPICS build system, but it is a good way
to insure an application uses the correct DLLs.  If there are two
applications with copies of the same DLLS in their directories, probably
both copies are used, however, destroying part of the benefit of DLLs.
Better is to put all related applications and the DLLs in the same
directory.

3. There is another item in the DLL search path that isn't listed in the
Visual Studio documentation with the others.  There is a registry key,
HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths, that has subkeys
for applications (e.g. medm.exe) below it.  Each subkey has a value named
Default with the full path of the application as data and a value named Path
with a path list as the data.  The paths in Path are searched for DLLs just
before the paths in the user's PATH environmental variable.  Applications in
App Paths can be started at a command prompt, independent of the PATH, and
the DLLs will be found in the Path's in that key before being found in the
PATH.  You can also do file associations.  Thus, the hard-coded DLL paths
can be put in this key.  Presumably a Perl or other script in the build
system could do this.  A well-behaved application would remove the keys when
it is uninstalled.

     The EPICS WIN32 Extensions do both 2. and 3.

	-Ken



References:
RE: R3.14.2 Jeff Hill

Navigate by Date:
Prev: RE: R3.14.2 Chris Timossi
Next: Re: R3.14.2 schedule Ralph Lange
Index: 2002  <20032004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: R3.14.2 schedule Janet Anderson
Next: RE: EPICS Timer Roundoff Jeff Hill
Index: 2002  <20032004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Feb 2012 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·