Sharing static resources between all threads connected to the same DLL in the process is up to you here.
However, there is a trick for this. As long as DLLs have different names, the system considers them different, so separate instances of code and data are created.
To achieve this, for each thread, copy the DLL to a temporary file and load it using LoadLibrary . You should use explicit binding ( GetProcAddress ), not lib files, but this is really the only way.
source share