powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Опять глобальные переменные
8 сообщений из 33, страница 2 из 2
Опять глобальные переменные
    #33995949
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlКаждая LoadLibrary порождает кусок памяти для глобальных переменных объявленных в dll.
Сколько раз LoadLibrary сделали - столько копий глобальной переменной создали.Второе предложение можно понять так, что при каждом вызове LoadLibrary будет появляться новая копия глобальной переменной. Ziv же тебя поправил, что так делает только первый вызов функции, остальные (для этой же дллки) никаких копий глобальной переменной не создают.
...
Рейтинг: 0 / 0
Опять глобальные переменные
    #33996181
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoто есть глобальную переменную нужно определять в дллке. Эту дллку загружать во всех дллках и в проге. Если я всё помню правильно, у дллки своя память и будет только один экземпляр переменной. Но это лучше уточнить.

Неправильно помнишь. нет у Dll-ки "своей" памяти, она маппируется в адресное пространство процесса. Win32 старается по возможности использовать секции совместно (между различными экземплярами процесса), но при записи, создается копия секции. Для того, чтобы секция разделялся МЕЖДУ процессами, ее нужно при линковке объявить разделяемой. Как я показал (и это вызвало твой нездоровый смех). При этом обязательно синхронизировать доступ к разделяемой памяти.

Если же разделять данные между процессами не нужно, то я вообще не вижу какой-то проблемы достойной создания топика.
...
Рейтинг: 0 / 0
Опять глобальные переменные
    #33996316
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)нет у Dll-ки "своей" памяти, она маппируется в адресное пространство процесса.это-то ясно. Под своей памятью я подразумевал то, что эта память не дублируется при множественной загрузке дллки. То есть память дллки не принадлежит модулю, загрузившему дллку, а разделяется между всеми модулями, загрузившими дллку. По логике-то если модуль загружает дллку, то чтобы он с ней ни делал, это не должно влиять на поведение дллки в других модулях, а оно на самом деле влияет. В этом смысле память дллки принадлежит дллке и с ней не слудет обращаться так, будто она принадлежит модулю, загрузившему дллку. Ясен пень, что вся память процесса принадлежит процессу, это как бы никто сомнению не подвергал. Дались вам эти процессы, будто жить без них не можете.

Gluk (Kazan)Если же разделять данные между процессами не нужно, то я вообще не вижу какой-то проблемы достойной создания топика.данные нужно раделять между ехешником и его дллками. И не просто разделять, а сделать глобальными, то есть вариант с передачей указателя - это не совсем то :)

Интересно, почему ты не подумал, что чел хочет разделять память между машинами?
...
Рейтинг: 0 / 0
Опять глобальные переменные
    #33996992
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
потому что у чела явно нет кластера
он и задачу то внятно сформулировать не может

если можно назвать это задачей
...
Рейтинг: 0 / 0
Опять глобальные переменные
    #33997055
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
телепатия - это умение не фантазировать
...
Рейтинг: 0 / 0
Опять глобальные переменные
    #33997356
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, телепатия это способность сверхчувственного восприятия
и я ей к сожалению не владею

предлагаю флейм на этом прекратить
...
Рейтинг: 0 / 0
Опять глобальные переменные
    #33997376
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)предлагаю флейм на этом прекратитьподдерживаю :)
полезная информация исчерпалась в контексте темы
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Опять глобальные переменные
    #33998010
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo White OwlКаждая LoadLibrary порождает кусок памяти для глобальных переменных объявленных в dll.
Сколько раз LoadLibrary сделали - столько копий глобальной переменной создали.Второе предложение можно понять так, что при каждом вызове LoadLibrary будет появляться новая копия глобальной переменной. Ziv же тебя поправил, что так делает только первый вызов функции, остальные (для этой же дллки) никаких копий глобальной переменной не создают.Ну да, поправил. Я согласен с его поправкой. А вот с твоим пояснением его поправки я уже не согласен, по той же самой причине по которой MasterZiv начал поправлять меня.

Если вы все еще понимаете кто что сказал и чьи слова надо считать за самую полную правду - вы молодец :)
...
Рейтинг: 0 / 0
8 сообщений из 33, страница 2 из 2
Форумы / C++ [игнор отключен] [закрыт для гостей] / Опять глобальные переменные
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]