"David H. Lipman" <dlip...@verizon.net> wrote: > The problem occurs when an EXE loads DEPENDENT.DLL version X and is now > loaded in memory. Then a second application loads that wants the same DLL > but expects version Y. Since the DLL is loaded in memory the second > application loads without error. However since version X is loaded not > version Y when the second application makes a call to a DLL function it > does not return what is expcted and then second application either does > not work correctly or it generates an error message.
So... the OS is loading DLLs into shared memory. One could get around this if there was a way, before starting one's app, to load specific DLLs into the process's own memory, so that when the app attempts to load the DLL it (or more accurately the OS, I suppose) would see the local copy and return its load address. >If it is a case where an EXE loads DEPENDENT.DLL version X and then exits, >the DEPENDENT.DLL is unloaded. If it is a case where an EXE loads >DEPENDENT.DLL version X and stays resident, then you may have problems. I see. -- Jeremy C B Nicoll - my opinions are my own.