LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

DLL install and load behavior question

I recently copied (but did not not install) a dll into the windows\system32 folder on an XP machine.  I had set the file and the product versions of this dll to 1.0.0.1

I then wanted to install the same dll but of older version 1.0.0.0 using a distribution kit I had built for it.

The installer appeared to install the older DLL alongside the newer version, though they were the same name I believe.  When I ran a client application, it loaded the newer DLL, as I could verify using the sysinternals procexplorer tool. 

I deleted the newer version and after that the client application ran using the older dll as I had intended.

Does anyone know if:

1.  Windows tolerates multiple DLL's of the same name (but different version) in the system32 folder?  This may be part of the DLL rollback scheme XP implements I imagine if it does this.
2.  A win32 application will automatically choose to load the newest version of a DLL during a static (at process start) dll load?

I guess what I'm really asking is if there's DLL  installer and/or load behavior in WinXP that is DLL version dependent?

Thanks, Menchar


0 Kudos
Message 1 of 2
(2,986 Views)
Hi menchar,
 
What kind of dll are you using? Are you using a standard Win32 dll or are you talking about an Assembly?
 
If it is a regular DLL, than you should not be able to have multiple versions of the same dll in the same folder (if they have the same filename).
This makes the second question moot since the application will use whichever version of the dll it finds first in its search paths.
Jervin Justin
NI TestStand Product Manager
0 Kudos
Message 2 of 2
(2,944 Views)