PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Является ли DLL адресным пространством EXE-файла?


Является ли DLL адресным пространством EXE-файла?

Сообщений 1 страница 3 из 3

1

Интересует вопрос, если сделать часть программы в виде DLL, уменьшиться ли размер её процесса в диспетчере задач? Погуглил и из прочитанного понял, что физически DLL одна, но в памяти каждый процесс используемый эту DLL будет показывать занятое виртуальное пространство с учётом этой DLL. Ну и мнение что она будет добавлена только к первому процессу, но для меня это показалось странно, что для какого то процесса будет иное определение. И в третьих, насколько я почитал про всякие стеки, про загрузку функции в стек из этого я делаю выводы, что функция будет ещё создавать копию в процессе её работы. Просто возник спор, многие определяют программу по критерию занимаемой памяти в диспетчере задач, это я слушал и в Linux и в Windows, но при сравнении некоторые программы написаны с использованием DLL, другие нет, можно ли их сравнивать в таком случае, если размер dll будет отображаться в другом процессе или в собственном адресном пространстве.

0

2

В винде загружается только одна копия в память. Но для каждого процесса память под переменные своя.

0

3

Пётр написал(а):

Но для каждого процесса память под переменные своя.

У меня тут связанный вопрос возник по памяти.
Допустим, есть некая dll используемая несколькими программами.
Расшарить память dll между программами (сделать общей) в этой dll можно, как я понял, так:

Код:
DataSection
  !section '.share' data readable writeable shareable
  SharedVariable:
  Data.i 0
  !section '.data' Data readable writeable
EndDataSection

И далее по указателю обращаться к SharedVariable.
Но задача стоит сделать не просто некоторую область, а динамический массив (изменяется через redim).
Вопрос, собственно, можно ли сделать такое в принципе? Будет ли расшарена память, выделяемая под сам массив?
Я, конечно, поэкспериментирую, но хотелось бы знать, возможно ли такое в принципе или придётся искать какой-то обходной путь?

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Является ли DLL адресным пространством EXE-файла?