Для теста я хотел бы загрузить два экземпляра общей библиотеки из приложения. Код в библиотеке предоставляет API, но он не позволяет мне инициализировать два (или более) экземпляра библиотеки, потому что некоторые функции зависят от статических переменных.
В настоящее время я пишу юнит-тесты для этой библиотеки, и мне бы хотелось иметь два экземпляра, потому что это сильно упростило бы мои тесты.
Библиотека не связана с программой. Вместо этого я загружаю его напрямую, используя LoadLibrary / GetProcAddress (или dlopen / dlsym в Linux). Чтобы различать две библиотеки, я могу просто использовать разные имена для указателей функций, которые я загружаю ...
Вот вопросы:
Можно ли загрузить такую библиотеку дважды? Например. Все загруженные экземпляры библиотеки должны получить свой собственный сегмент данных и не влиять друг на друга.
Если так: это портативный компьютер для Windows и Linux?