From: Kevin Smith Date: 2001-08-25T10:59:24+09:00 Subject: [ruby-talk:20343] Re: New Windows InstallShield version of Ruby > That hasn't been our experience with the Cygwin DLL. If > (for example) > you're running a bash shell that uses one version of the > DLL, > attempting to run Ruby in a DOS window with another > cygwin DLL > fails. Kill the bash shell, and the Ruby program works. > Even through > there are two DLLs in two different paths, the fact that > one is loaded > seems to prevent another from being loaded. Perhaps > windows can only > load one DLL of a given name at a time? I've been out of the Windows internals game for a while, but I believe this is left over from the 16-bit days, and I've heard it will be fixed in Windows XP. "Modules", as they refer to DLL's and EXE's, have a short name that is used internally. If that name already exists in memory, the copy in memory is reused, even if the _path_ to load that module is different. Which is exactly what you describe. The other post referred to the possibility that the DLL was remaining in memory for some time after the last app using it had unloaded. Someone said this was impossible, but I find it plausible. Especially if the app being closed closes its window early, and does some final processing before actually terminating. I can also believe, but have no specific knowlege, that Windows might take its time unloading DLL's, so the original poster may have been correct. We've exhausted my knowlege (and then some), so I'll duck out now. Kevin __________________________________________________ Do You Yahoo!? Make international calls for as low as $.04/minute with Yahoo! Messenger http://phonecard.yahoo.com/