This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: b19 and cygwin.dll


>From: "\"Zow\" Terry Brugger" <zow@mdbs.com>
>Reply-To: "zow@mdbs.com" <zow@mdbs.com>
>To: "'Martin Portmann'" <map@graph-tech.ch>,
>        "'mh@mike.franken.de'"
>	 <mh@mike.franken.de>,
>        "'Andrew Lipnitsky'" <ert@cit.org.by>
>Cc: "gnu-win32@cygnus.com" <gnu-win32@cygnus.com>
>Subject: RE: b19 and cygwin.dll
>Date: Mon, 23 Feb 1998 14:34:51 -0000
>
>-----Original Message-----
>From:	Martin Portmann
>
>
>According to M$ manuals a DLL will be searched in
>   1. The directory from which the application loaded.
>   2. The current directory
>   3. Windows 95: The Windows system directory (c:\windows\system)
>      Windows NT: The 32-bit Windows system directory
>(c:\winnt\system32)
>   4. Windows NT: The 16-bit Windows system directory (c:\winnt\system)
>   5. The Windows directory (C:\winnt)
>   6. Directories that are listed in the PATH environment
>      variable
>
>   What we do with our Win32 applications is to ship all
>   necessary dll in the same path as the application.
>   This is the fastest and you never have problems
>   overwritting a client dll or depending on a client
>   configuration.
>
>This is slightly misleading, as we discovered the hard way. While those 
are 
>the places that the system looks for a DLL, it is not necessarily done 
in 
>that order. In fact, the order it's done seems to be undefined. We 
>discovered this because we had an old version of our DLL in the 
system32 
>directory and the new version in the directory w/ the new version of 
our 
>app. When we executed the app, we saw old bugs reappear and after much 
>debugging and hair pulling, discovered that it was the old copy of the 
DLL 
>that was being loaded. I subsequently added a rudimentary version check 
to 
>our DLL.

Another good reason to leave the dll with the application level.  As I 
see it there are three categories of dll's:

1. System Specific: these are for the Operating System dlls that come 
from MS; thses should be placed in /Windows/System##/ directory.

2. Manufacturer Specific: these are dll's that the manufacturer will use 
for more than one package; for MS routines these should go in the 
/Windows/ directory.  For all others these should go in the 
/Manufacturer/ directory.

3. Package Specific: these are dll's that are only used for a particular 
package; they should go in a directory called /Manufacturer/Package/.

>
>   -----------------------------------------------------
>   Martin Portmann               Mobile +41 79 330 60 12
>
>Terry
>
>

Just 2 more cents worth,

-        \\||//
---o0O0--Earnie--0O0o----
-earnie_boyd@hotmail.com-
------ooo0O--O0ooo-------



______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]