For a test I'd like to load two instances of a shared library from an application. The code in the library provides an API but it does not allow me to initialize two (or more) instances of the library because some of the functions rely on static variables..
I'm currently writing unit-tests for this lib, and I'd like to have two instances because that would simplify my tests a lot.
The library doesn't get linked into the program. Instead I load it directly using LoadLibrary/GetProcAddress (or dlopen/dlsym on linux). To distinguish the two libraries I could simply use different names for the function-pointers I'm loading...
Here are the questions:
Is it possible to load such a library twice? E.g. All loaded instances of the library should get their own data-segment and don't influence each other.
If so: Is this portable for windows and linux?