Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Счетчик числа загрузок DLL  (Прочитано 5712 раз)
0 Пользователей и 1 Гость смотрят эту тему.
MasterAlexei
Гость
« : 29-10-2004 12:46 » 

Собственно, как его узнать в Виндах. наверняка есть такая функция.
Т.е. При LoadLibrary для одной длл первый раз, длл загружается и запускается DllMain. А при последующих вызовах LoadLibrary для той-же длл DllMain уже не вызывается, но увеличивается тот самый счетчик. Вот как его узнать? Какой функцией?
Заранее спасибо.
Алексей.
Записан
dimedrol
Помогающий

ru
Offline Offline

« Ответ #1 : 14-12-2004 22:33 » 

Очень хорошая задачка! Гляди ко че я вчера вечерком придумал:
h=LoadLibrary('XXXXXX.dll');
......
_asm{
    pusha
       mov eax, fs:0x18
       mov eax,[eax+0x30]
       mov eax,[eax+0ch]
       add eax,0ch
       mov ecx, eax
       mov esi, h
   _1: mov edx,ecx
       cmp dword ptr[edx+8], 0
       mov ecx,[ecx]
       jz _1
       cmp esi,[edx+18h]
       jnz _1
       mov eax, [edx+0x38]
       mov Ref,eax
  popa
}
Теперь в Ref лежит то что надо! Однако счетчик ведется лишь для DLL не загруженных автоматически системным загрузчиком (Ref = 0xFFFF). Я испытывал это под XP, но вроде должно работать и в NT/2000, 98/95 - Не понял Если не трудно напиши мне отзыв о работе метода на luck_777@mail.ru.
Записан

Как говориться, cемь бед - один Reset Улыбаюсь
MasterAlexei
Гость
« Ответ #2 : 15-12-2004 00:28 » 

Ну это слишком мудренно. Да и с ассемблером под виндами я как-то не очень владею. Но вот тут я уже ответил на этот вопрос:
https://forum.shelek.ru/index.php/topic,4973.0.html
Так сказать, зачем изобретать велосипед, когда в системе все есть и вполне доступно.
С уважением,
Алексей
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines