информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыВсе любят медАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[C++] Очень глупый ответ про DLL ! 14.09.02 17:48  Число просмотров: 1243
Автор: J'JF <Dmytro Volhushyn> Статус: Elderman
<"чистая" ссылка>
> Вот содержание обычного файла def:
>
> LIBRARY "DLL"
> DESCRIPTION 'DLL Windows Dynamic Link Library'
>
> EXPORTS
> ActivateKeyboardLayout @1
> AdjustWindowRect @2
> AdjustWindowRectEx @3
> AlignRects @4
> AllowForegroundActivation @5
>
> А теперь вопрос зачем нужны @1, @2, @3 и т. д. . Что они
> делают? И как изменяется DLL если их нет? В конце концов
> можно просто написать:
>
> LIBRARY "DLL"
> DESCRIPTION 'DLL Windows Dynamic Link Library'
>
> EXPORTS
> ActivateKeyboardLayout
> AdjustWindowRect
> AdjustWindowRectEx
> AlignRects
> AllowForegroundActivation

А нифига, по-моему, и не поменяется. Я С++ не изучал (юзаю Паскаль ака Delphi), но это очень похоже на индексы экспортируемых процедур. Смысл в том, что ты процедуру (или функцию) можешь из DLL вызывать не только по имени, но и по индексу (номеру), который ей присвоен программером, который ее писал. И этот самый индекс присваивать процедуре совсем необязательно.
<programming>
[C++] Очень глупый вопрос про DLL ! 14.09.02 15:16  
Автор: Xemax Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Вот содержание обычного файла def:

LIBRARY "DLL"
DESCRIPTION 'DLL Windows Dynamic Link Library'

EXPORTS
ActivateKeyboardLayout @1
AdjustWindowRect @2
AdjustWindowRectEx @3
AlignRects @4
AllowForegroundActivation @5

А теперь вопрос зачем нужны @1, @2, @3 и т. д. . Что они делают? И как изменяется DLL если их нет? В конце концов можно просто написать:

LIBRARY "DLL"
DESCRIPTION 'DLL Windows Dynamic Link Library'

EXPORTS
ActivateKeyboardLayout
AdjustWindowRect
AdjustWindowRectEx
AlignRects
AllowForegroundActivation
[C++] Очень глупый вопрос про DLL ! 16.09.02 15:39  
Автор: Xemax Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Откуда по умолчанию начинается номерация экспортируймых функций в DLL. С цифры 0 или 1 ?
[C++] Очень глупый вопрос про DLL ! 16.09.02 08:46  
Автор: IgorR <Igor Razin> Статус: Member
<"чистая" ссылка>
> Вот содержание обычного файла def:
>ActivateKeyboardLayout @1
Только надо бы _ActivateKeyboardLayout @1

> А теперь вопрос зачем нужны @1, @2, @3 и т. д.
Это количество байт передаваемых в параметрах.

А вообще это извращение. Т.к. у тебя и будут экспортироваться функции с такими именами.
[C++] Очень глупый вопрос про DLL ! 16.09.02 15:33  
Автор: Xemax Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > Вот содержание обычного файла def:
> >ActivateKeyboardLayout @1
> Только надо бы _ActivateKeyboardLayout @1
>
> > А теперь вопрос зачем нужны @1, @2, @3 и т. д.
> Это количество байт передаваемых в параметрах.
>
> А вообще это извращение. Т.к. у тебя и будут
> экспортироваться функции с такими именами.

Не знаю ну помойму эта номера функций, а не количество принимаймых параметров. Взглини ссылку:
http://louhi.kempele.fi/~skyostil/store/code/4k/asm2001/USER32.DEF
там номера увеличиваются последовательно. Следующая функция принимает 2 параметра, а для нее указаео @1.

HKL ActivateKeyboardLayout(HKL hkl, UINT Flags);

и функция mouse_event насколько я знаю не принимает 644 параметра.
[C++] Очень глупый ответ про DLL ! 14.09.02 17:48  
Автор: J'JF <Dmytro Volhushyn> Статус: Elderman
<"чистая" ссылка>
> Вот содержание обычного файла def:
>
> LIBRARY "DLL"
> DESCRIPTION 'DLL Windows Dynamic Link Library'
>
> EXPORTS
> ActivateKeyboardLayout @1
> AdjustWindowRect @2
> AdjustWindowRectEx @3
> AlignRects @4
> AllowForegroundActivation @5
>
> А теперь вопрос зачем нужны @1, @2, @3 и т. д. . Что они
> делают? И как изменяется DLL если их нет? В конце концов
> можно просто написать:
>
> LIBRARY "DLL"
> DESCRIPTION 'DLL Windows Dynamic Link Library'
>
> EXPORTS
> ActivateKeyboardLayout
> AdjustWindowRect
> AdjustWindowRectEx
> AlignRects
> AllowForegroundActivation

А нифига, по-моему, и не поменяется. Я С++ не изучал (юзаю Паскаль ака Delphi), но это очень похоже на индексы экспортируемых процедур. Смысл в том, что ты процедуру (или функцию) можешь из DLL вызывать не только по имени, но и по индексу (номеру), который ей присвоен программером, который ее писал. И этот самый индекс присваивать процедуре совсем необязательно.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach