Вниз
Скачать: CL | DM;

Dll   Найти похожие ветки 

← →
Gu   (2011-08-28 21:24) [0]

Если одна программа стартовала, загрузила и работает с длл, то другая прога, которая запускается после первой и тоже загружает эту длл - загрузит ее с диска или из памяти? :)


← →
Gu   (2011-08-28 21:45) [1]

интересует конкретный момент вот отсюда:
http://citforum.ru/programming/digest/dlldelphi.shtml

там описывается:

DLL_THREAD_ATTACH - в оперативную память загружается новый процесс, использующий ресурсы и/или код из данной библиотеки;
DLL_THREAD_DETACH - один из процессов, использующих библиотеку, "выгружается" из памяти.


← →
~AQUARIUS~   (2011-08-28 21:49) [2]

В общем случае это не должно вас волновать - как была загружена длл. Решением этого вопроса занимается ОС


← →
Gu   (2011-08-28 22:14) [3]

меня интересует в частности: если длл уже загружена, в ней есть некоторые глобальные переменные, которые инициализируются при загрузке этой длл. при загрузке второй прогой - что с ними будет?


← →
Игорь Шевченко ©   (2011-08-28 22:20) [4]

будут неинициализированы

"Читайте умные книги -- причём внимательно -- и думайте головой. Ваша кипучая деятельность на форумах реальных знаний и умений не даст; максимум, что получите, -- это обрывки сведений о различных аспектах  программирования без всякой системы."


← →
Юрий Зотов ©   (2011-08-28 23:07) [5]

> Gu   (28.08.11 22:14) [3]

> если длл уже загружена, в ней есть некоторые глобальные
> переменные

Эти переменные между программами не разделяются.Они свои собственные для каждого как бы "экземпляра" DLL.

> которые инициализируются при загрузке этой длл.
> при загрузке второй прогой - что с ними будет?

Смотря где они инициализируются. Если в самой DLL (например, при DLL_PROCESS_ATTACH), то будут инициализированы. А если их инициализирует первая программа, то во второй они останутся неинициализированными.


← →
Германн ©   (2011-08-29 00:30) [6]


> Gu   (28.08.11 22:14) [3]
>
> меня интересует в частности: если длл уже загружена, в ней
> есть некоторые глобальные переменные

Глобальные они для "проекта", т.е. для исходников проекта, но не для уже собранной dll. Эти "глобальные переменные" имеют совсем разные реальные адреса, ибо Dll загружается в АП того процесса, который "загрузил" эту dll. Т.е. сколько процессов загрузило эту библиотеку, столько и экземпляров этих переменных в памяти.


← →
Gu   (2011-08-29 02:11) [7]

спасибо


← →
Юрий Зотов ©   (2011-08-29 05:54) [8]


> Gu   (28.08.11 21:45) [1]

> DLL_THREAD_ATTACH - в оперативную память загружается новый
> процесс, использующий ресурсы и/или код из данной библиотеки;
>  
> DLL_THREAD_DETACH - один из процессов, использующих библиотеку,
>  "выгружается" из памяти.


В статье неточность. Не процесс загружается/выгружается, а поток создается/завершается. Внутри процесса.

Для отлова загрузки/выгрузки процесса используются не
DLL_THREAD_ATTACH/DETACH,
а
DLL_PROCESS_ATTACH/DETACH


← →
Юрий Зотов ©   (2011-08-29 05:59) [9]


> Gu

Поэтому Игорь прав - читать надо Рихтера, а не "самопальные" статьи в Инете. Это убережет от многих ошибок.


← →
Юрий Зотов ©   (2011-08-29 06:03) [10]


> Gu   (28.08.11 21:24)  

Кстати, чтение Рихтера, позволит понять, что вопрос
> Если одна программа стартовала, загрузила и работает с длл,
>  то другая прога, которая запускается после первой и тоже
> загружает эту длл - загрузит ее с диска или из памяти?

поставлен некорректно.


← →
Юрий Зотов ©   (2011-08-29 06:05) [11]


> Для отлова загрузки/выгрузки процесса

Точнее, не процесса, а самой DLL, конечно.


← →
Gu   (2011-08-29 11:08) [12]


> Читайте умные книги

а эту ветку для прочитавших умные книги сделали я так понимаю? и зачем тогда инет?


← →
Inovet ©   (2011-08-29 11:10) [13]

> [12] Gu   (29.08.11 11:08)
> и зачем тогда инет?

Т.е. читать умные книги не надо?


← →
Юрий Зотов ©   (2011-08-29 11:33) [14]

> Gu   (29.08.11 11:08) [12]
Жаль. Очень жаль.


← →
Anatoly Podgoretsky ©   (2011-08-29 12:04) [15]

> Gu  (29.08.2011 11:08:12)  [12]

Что бы ты задал такой вопрос "зачем тогда инет"?


← →
И. Павел ©   (2011-08-29 12:11) [16]

> и зачем тогда инет?

Чтобы скачивать умные книги даже если их нет в продаже :)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.012 c
15-1314177562
P
2011-08-24 13:19
2011.12.11
Состояние/позиция окна в Windows 7


2-1314597307
brother_home
2011-08-29 09:55
2011.12.11
как правильно обратиться к полю?


15-1313681077
SQLEXPRESS
2011-08-18 19:24
2011.12.11
как админить бд mssql при режиме 24/7


15-1313526604
Юрий
2011-08-17 00:30
2011.12.11
С днем рождения ! 17 августа 2011 среда


15-1313675656
Andy BitOff
2011-08-18 17:54
2011.12.11
Протокол обмена с весами CAS AD-25




   Наверх