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

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

Как завершить работу DLL? [D7, XP]


Илья2 ©   (2010-10-06 20:36:00) 

Здравствуйте. При невыполнении некоторого условия работа DLL должна быть завершена. Какую функцию использовать? ExitProcess тут ведь не подойдет?

Спасибо.


icWasya   (2010-10-07 09:14:00) [1]

не UnloadLibrary, а FreeLibrary, а параметром - то что вернула LoadLibrary.


Rouse_   (2010-10-06 23:58:00) [2]

Параметры у UnLoadLibrary не подскажешь? :)


Petr V. Abramov   (2010-10-06 23:56:00) [3]

если DLL грузится через LoadLibray, то выгружается, предсказуемо, через UnLoadLibrary.
тонкость одна: если dll использовала vcl, то
1. все объекты создавать руками, не отдавать это vcl. т.е никаких автокрейтформ.
2. все, что создано, перед unload должно быть уничтожено. руками
иначе error-217 на выходе из exe. формально работе не мешает, но орет "программер - козел"
я делал так: в любом плагине предусмотрена ф-ция "приготовиться к смерти", ее вызывали перед unloaddll


Leonid Troyanovsky   (2010-10-06 22:10:00) [4]


> Илья2   (06.10.10 21:46) [4]

> Нет, мне нужно из самой DLL.

http://msdn.microsoft.com/en-us/library/ms683153(v=VS.85).aspx

--
Regards, LVT.


Сергей М.   (2010-10-06 22:04:00) [5]

Цитата из стандартной справки:

On Windows, setting the ExitCode variable to a value other than 0 in the initialization section of a unit will make loading of a DLL fail (DllMain will return false). You can also set ExitCode in code called from DllProc or DllProcEx to signal failure of loading.


Сергей М.   (2010-10-06 22:01:00) [6]


> Илья2   (06.10.10 21:46) [4]


> работа DLL

Это не "работа DLL", а работа процедуры инициализацииDLL.


Плохиш   (2010-10-06 21:51:00) [7]

exit


Илья2   (2010-10-06 21:46:00) [8]


> Rouse_ ©   (06.10.10 21:44) [3]
>
> FreeLibrary?


Нет, мне нужно из самой DLL. Ладно, всем спасибо.


Rouse_   (2010-10-06 21:44:00) [9]

FreeLibrary?


Игорь Шевченко   (2010-10-06 21:29:00) [10]


> Как завершить работу DLL


никак, DLL не завершаемая сущность


Илья2   (2010-10-06 20:41:00) [11]

Ситуация такая:

begin
  if FindWindow(classname, windowname) > 0 then
    // нужно завершить работу

 код ниже

end.


Наверх

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