Допустим, сторонняя DLL X имеет глобальную переменную G
Я пишу две отдельные библиотеки DLL (в качестве плагинов для приложения) P1 & P2 , которые обе динамически загружают X .
Процесс приложения загружает два моих плагина P1 & P2 , поэтому оба загружаются одновременно.
Значит ли это, что у меня есть один экземпляр G или два?
редактирование:
Сценарий использования: X - это механизм трехмерного рендеринга, который имеет системные ресурсы для обертывания синглетонов, он просто не предназначен для ожидания нескольких экземпляров в процессе - вы можете запустить 2 X приложения на основе сразу, но попытка инициализации X дважды в приложении то же самое приведет к ошибке.
Оба плагина используют X , но будут развернуты как отдельные установщики, они не будут знать друг о друге и не будут использовать один и тот же файл X .dll - Как правило, каждый плагин имеет свой собственный каталог для хранения необходимых ресурсов и DLL.