Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Глобальные переменные в DLL


s00r ©   (2007-12-09 09:52:00) 

Если две программы используют одну и ту же DLL, и в DLL есть глобальные переменные. То для двух копий DLL переменные будут общие? Или эти две копии будут работать независимо друг от друга?


DrPass   (2007-12-09 13:17:00) [1]


> Проверяю, я код инициализации выполняется каждый раз даже
> если уже запущено приложение с той же библиотекой. Я не
> правильно понял или в статье ошибка?

Никакой ошибки. Просто ты читаешь статью про совершенно другую операционную систему, и другой язык программирования


MetalFan   (2007-12-09 12:42:00) [2]


>
> http://www.lib.profi.net.ua/doc/prog/tp7/lr11.shtml.htm

ну вот, еще и BP вспомнили


Leonid Troyanovsky   (2007-12-09 12:22:00) [3]


> Nucer   (09.12.07 11:03) [2]

> Проверяю, я код инициализации выполняется каждый раз даже
> если уже запущено приложение с той же библиотекой. Я не
> правильно понял или в статье ошибка?

Ошибка, конечно.
Каждый процесс выполняет DLL_PROCESS_ATTACH,
поток - DLL_THREAD_ATTACH.

Но, с локальностью глобальных переменных это, IMHO, не связано.

--
Regards, LVT.


Nucer   (2007-12-09 11:03:00) [4]

Вот тут читаю:

> Операторная часть  библиотеки  состоит из кода инициализации
>         библиотеки. Код  инициализации  выполняется  только
>  один раз при
>         первоначальной загрузке библиотеки. Когда другие
> прикладные прог-
>         раммы будут использовать уже загруженную библиотеку,
>   код инициа-
>         лизации повторно не выполняется, но увеличивается
> счетчик исполь-
>         зования DLL.
>
>              DLL хранится в памяти,  пока ее счетчик использования
> больше
>         нуля. Когда  счетчик использования становится нулевым,
>   указывая,
>         что все использующие DLL прикладные программы  завершили
>  работу,
>         она удаляется из памяти. При этом выполняется код
> процедуры выхо-
>         да. Процедуры  выхода   регистрируются   с   помощью
>   переменной
>         ExitProc, которая описывается в Главе 22 "Вопросы
> управления".

Проверяю, я код инициализации выполняется каждый раз даже если уже запущено приложение с той же библиотекой. Я не правильно понял или в статье ошибка?

http://www.lib.profi.net.ua/doc/prog/tp7/lr11.shtml.htm


Leonid Troyanovsky   (2007-12-09 10:19:00) [5]


> s00r   (09.12.07 09:52)  

> Или эти две копии будут работать независимо друг от друга?

Да, независимо.

--
Regards, LVT.


Наверх

Титульная страница Поиск, карта сайта Написать письмо