From: earnie_boyd AT hotmail DOT com (Earnie Boyd) Subject: RE: b19 and cygwin.dll 24 Feb 1998 22:18:49 -0800 Message-ID: <19980224154240.27743.qmail.cygnus.gnu-win32@hotmail.com> Content-Type: text/plain To: zow AT mdbs DOT com Cc: gnu-win32 AT cygnus DOT com >From: "\"Zow\" Terry Brugger" >Reply-To: "zow AT mdbs DOT com" >To: "'Martin Portmann'" , > "'mh AT mike DOT franken DOT de'" > , > "'Andrew Lipnitsky'" >Cc: "gnu-win32 AT cygnus DOT 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 AT hotmail DOT 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 AT cygnus DOT com" with one line of text: "help".