From: MikkelFJ Date: 2001-08-25T20:34:18+09:00 Subject: [ruby-talk:20363] Re: New Windows InstallShield version of Ruby "Dave Thomas" wrote in message news:m2wv3tos1d.fsf@zip.local.thomases.com... > "MikkelFJ" writes: > > > 2) Even if a dll is loaded, nothing prevents an equivalent dll in a > > different path from being loaded into another process. > > Mikkel: > > 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, This is also what I'm suggesting. But I believe it is Cygwin that prevents the two dlls from being loaded, not Windows. While I don't know much about Cygwin, I could imagine that Cygwin uses some server process that it would not want to have running twice - like administering some socket service. > seems to prevent another from being loaded. Perhaps windows can only > load one DLL of a given name at a time? I know that the Windows search path is a problem. But that is unrelated to whether a dll has been loaded. It means that if there are multiple versions of the dll in several places, it can be hard to predict which one is loaded. The best way is to use renaming or to keep the dll in the same directory as the executable the links to it. The rules are different on different platforms - in later versions they have become more logical. Another issue is if you try to replace the dll while it is being loaded. Depending on windows platform, this would either simply replace the dll and leave the old version loaded until released, or prevent you from overwriting while it is loaded (can be fixed by renaming the loaded dll, then put the new dll in place - the old one remains loaded). > Now, I have to admit total ignorance of Windows, so the chances are > pretty good that I'm mis-interpreting what's going on. Would you be > willing to work with Andy and (to a lesser extent) me to work out a > good way to resolve this issue? Yes. Mikkel