Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.08.2009, 01:21   #1
Alex217Vish
Пользователь
 
Регистрация: 07.02.2009
Сообщений: 31
По умолчанию Финализация dll

Что-то обеднел наш гугл... так что, за помощью я сюда =)

Собственно говоря, уже столько не работал с dll, что забыл как правильно прописать финализацию. Инициализацию помню - begin..end
А вот с финализацией проблемы. В принципе, как оказалось, работает метод через ключевое слово "finalization", но раньше я его в dll не встречал и лично мне он кажется варварским =)
Итак, кто сможет привести код dll с финализацией? (ну, допустим, пусть она выводит сообщение:

Код:
MessageBox(0, 'Hello World', '', 0);
Да, ещё один вопрос: DLL_THREAD_ATTACH и DLL_THREAD_DETACH не очень хочется обрабатывать =) Если их просто выкинуть, система будет сама обрабатывать их, или без соб.кода не обойтись?

Последний раз редактировалось Alex217Vish; 11.08.2009 в 12:48.
Alex217Vish вне форума Ответить с цитированием
Старый 11.08.2009, 06:39   #2
0nni
Форумчанин
 
Аватар для 0nni
 
Регистрация: 24.07.2008
Сообщений: 279
По умолчанию

Код:
procedure DLLHandler(Reason: Integer);
begin
 case Reason of
   DLL_PROCESS_ATTACH : 
     begin
      // Загрузка библиотеки
     end;
   DLL_PROCESS_DETACH : 
     begin
       // Выгрузка библиотеки
     end;
   DLL_THREAD_ATTACH :
    begin
     // Pагрузка потока
    end;
   DLL_THREAD_DETACH :
    begin
     // Выгрузка потока
    end;
 end;
end;

begin
 DllProc := @DLLHandler;
 DLLHandle(DLL_PROCESS_ATTACH);
end.
Цитата:
Сообщение от Alex217Vish
Что-то обеднел наш гугл...
Это гуглится оч просто.
Сказал и загрустил от бесспорности своей правоты.
0nni вне форума Ответить с цитированием
Старый 11.08.2009, 12:48   #3
Alex217Vish
Пользователь
 
Регистрация: 07.02.2009
Сообщений: 31
По умолчанию

Благодарю =)
Что-то подобное я нашёл вчера, но там вроде бы какую-то ошибку искали =)
Да, ещё один вопрос: DLL_THREAD_ATTACH и DLL_THREAD_DETACH не очень хочется обрабатывать =) Если их просто выкинуть, система будет сама обрабатывать их, или без соб.кода не обойтись?
Alex217Vish вне форума Ответить с цитированием
Старый 11.08.2009, 18:57   #4
0nni
Форумчанин
 
Аватар для 0nni
 
Регистрация: 24.07.2008
Сообщений: 279
По умолчанию

Что значит обрабатывать? Она просто уведомляет тебя о присоединении/удалении потока, а что с этим делать решаешь ты. Как правило, DLL_THREAD_ATTACH и DLL_THREAD_DETACH редко используются.
Сказал и загрустил от бесспорности своей правоты.
0nni вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DLL counter Win Api 25 15.07.2009 21:28
DLL michaellos Win Api 1 16.11.2007 21:03
DLL michaellos Фриланс 1 13.11.2007 16:02
.DLL ZhekON Общие вопросы Delphi 3 20.05.2007 21:02