Если в памяти есть одна копия DLL, как ее можно загрузить в область памяти приложения? - PullRequest
2 голосов
/ 12 февраля 2020

Страница Создание C / C ++ DLL в Visual Studio говорит следующее во втором абзаце:

DLL не является автономным исполняемым файлом. DLL работают в контексте приложений, которые их вызывают. Операционная система загружает DLL в область памяти приложения . Это делается либо при загрузке приложения (неявное связывание), либо по требованию во время выполнения (явное связывание). DLL также облегчают совместное использование функций и ресурсов между исполняемыми файлами. Несколько приложений могут одновременно получать доступ к содержимому одной копии DLL в памяти.

Правильно ли выделенное предложение? Как это утверждение может быть согласовано с первым пунктом в Преимущества Dynami c Связывание , содержание которого я воспроизвожу ниже:

  • Несколько процессов, которые загружают один и тот же DLL по тому же базовому адресу разделяют одну копию DLL в физической памяти. Это экономит системную память и уменьшает объем подкачки.

Итак, если в памяти есть одна копия DLL, как ее можно загрузить в область памяти приложения?

...