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

Добрый день
Насколько я понял - DLL или EXE модули должны находится в оперативной памяти если потоку нужно будет вызвать из них функцию. В литературе что я читаю написано: "Чтобы приложение (или другая DLL) могло вызывать функции, содержащиеся
в DLL, образ ее файла нужно сначала спроецировать на адресное пространство
вызывающего процесса" (Джеффри Рихтер). Что из себя представляет это адресное пространство и почему нету ни слова ни о виртуальной или физической памяти?
  • Вопрос задан
  • 305 просмотров
Решения вопроса 1
pavelkarinin
@pavelkarinin
Full Stack Web Developer
Если объяснить очень-очень по-простому и не вдаваться в тонкости, то дело обстоит так: DLL, которые содержат исполняемые функции, методы и прочее действительно должны быть загружены в адресное пространство, которое представляет собой некий буфер, он выделяется из объема оперативной памяти и этот буфер принадлежит только этому процессу, т.е. тому процессу, в котором выполняется приложение. Физическая память к этому диалогу между приложением и DLL не имеет никакого отношения... это если кратко и без фанатизма.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Jump
@Jump Куратор тега Windows
Системный администратор со стажем.
Что из себя представляет это адресное пространство
Адресное пространство это виртуальная память.

и почему нету ни слова ни о виртуальной или физической памяти?
Потому что никакой физической памяти нет, есть только виртуальная.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы