Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
[C++] Очень глупый ответ про DLL ! 14.09.02 17:48 Число просмотров: 1286
Автор: 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 вызывать не только по имени, но и по индексу (номеру), который ей присвоен программером, который ее писал. И этот самый индекс присваивать процедуре совсем необязательно.
|
|
|