You cannot load the same DLL several times in one process (or not and have some effect).
From your comments, the DLL performs different actions depending on one of the function calls, so you will need to use a "session" system, where you save separate data sets for each and create them as needed (via another call) and pass a descriptor or similar for every function call. This is how most Win32 APIs work (files, window handles, GDI objects, etc.)
If you make the DLL a COM host and use COM objects, this is automatically processed by each instance of the class.
If you want to use a separate process, then you can do this by simply starting a new process to host the DLL and using one of the many IPC forms to communicate with it.
Deanna
source share