Я использую функцию LoadLibrary
для загрузки DLL в Windows. Мой вопрос таков: если я вызываю этот метод более одного раза для одной и той же DLL, могу ли я получить дескрипторы для разных экземпляров библиотеки DLL, или все они будут ссылаться на один и тот же экземпляр?Загрузите DLL больше, чем однажды?
Кроме того, как это поведение коррелирует с файлами Linux SO, является ли оно одинаковым или совершенно другим, и какие предположения я могу сделать в этом отношении? Благодарю.
Вы хотите, чтобы отдельный экземпляр вашей DLL (и его глобального состояния)? –
@DavidHeffernan Возможно, но только если это можно сделать и в Linux. Я больше пытаюсь прибить, как обычно работают вещи. Если то, что вы описали, возможно, мне было бы интересно узнать, как это сделать. –
Он работает одинаково в операционных системах. Существует грязный трюк, чтобы получить отдельные экземпляры DLL. Каждый раз, когда вам нужен новый экземпляр, скопируйте файл во временное место и укажите ему уникальное имя. Таким образом вы вынуждаете систему загружать новый модуль. Я иногда использовал этот метод для работы с библиотеками, которые не являются потокобезопасными из-за плохого дизайна и использования глобального состояния. –