Руководство по языку B.Pascal 7



Код инициализации библиотеки - часть 2


В защищенном режиме DOS передаваемое процедуре выхода DLL значение ExitCode всегда равно 0 и соответствует wep_FREE_DLL.

После разгрузки DLL экспортируемая функция вызывает процеду- ру WEP (процедура выхода Windows) DLL, если она присутствует. Библиотека Borland Pascal автоматически экспортирует функцию WEP, которая продолжает вызывать записанный в переменной ExitProc ад- рес, пока ExitProc не примет значения nil. Поскольку этот меха- низм процедур выхода соответствует работе с процедурами выхода в программах Borland Pascal, и в программах, и в библиотеках вы мо- жете использовать одну и ту же логику процедур выхода.

Поскольку операционная система при завершении DLL переключа- ет внутренний стек, процедуры выхода в DLL должны компилироваться с запрещением проверки стека (в состоянии {$S-}). Кроме того, ес- ли в процедуре выхода DLL происходит ошибка этапа выполнения, операционная система аварийно завершает работу, поэтому вы для предотвращения ошибок этапа выполнения вы должны включить в свой код достаточное количество проверок.




Содержание  Назад  Вперед