On 1/23/19 12:37 AM, IOhannes m zmölnig wrote:
On 1/22/19 11:36 PM, Miller Puckette wrote:
Would this mean that anyone shipping a binary external for Windows would have to put it in a separate directory with its own msvcrt.dll/msvcr90.dll? Sounds like a nightmare to me.
but i think that's really the only sane way. unless you can guarantee that Pd and all externals are built with the same compiler.
although on re-reading [1],i have serious doubts whether there is any safe way:
If a DLL with the same module name is already loaded in memory, the system checks only for redirection and a manifest before resolving to the loaded DLL, no matter which directory it is in. The system does not search for the DLL.
which i translate to: if any external happens to load a library (e.g. "msvcrt.dll"), then all externals loaded afterwards and depending on a library of the same name are doomed to use the first "msvcrt.dll".
which is of course similar on unix...but there we typically have soversions encoded in the filename which will help resolve this issue.
fgmrdsa IOhannes
[1] https://docs.microsoft.com/en-us/windows/desktop/dlls/dynamic-link-library-s...