![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Возможен ли экспорт процедур из EXE [D7, WinXP]
Still Swamp © (2005-09-24 13:38:00)Возможен ли экспорт процедур из EXE? Если да то как?
Суслик (2005-09-27 17:29:00) [1]Я как-то задавал аналогичный вопрос.
Результат - нельзя. Что-то там не локейтится.
GrayFace (2005-09-27 09:56:00) [2]> Игорь Шевченко © (26.09.05 10:57) [6]
> И не только это. Не выполняется настройка адресов (загрузчик
> не обрабатывает секцию .reloc), поэтому любой позиционно-
> зависимый код не будет работать.
Спасибо за инфу. Но тогда я вообще не представляю, зачем Delphi засовывает оную .reloc в exe?
Leonid Troyanovsky (2005-09-26 13:23:00) [3]
> Lamer@fools.ua © (26.09.05 11:45) [8]
> >А зачем грузить екзешник LoadLibrary?
> Ну иначе не имеет смысла их вообще экспортировать. Верно?
Смысл экспортирования из экзе (если он, вообще, существует),
именно в неиспользовании LoadLibrary.
Из dll GetProcAddress берется для GetModuleHandle(nil).
--
Regards, LVT.
Lamer@fools.ua (2005-09-26 11:45:00) [4]>> Leonid Troyanovsky © (26.09.05 11:14) [7]
> А зачем грузить екзешник LoadLibrary?
Ну иначе не имеет смысла их вообще экспортировать. Верно?
А уж зачем - это к автору топика :-)
> Экспорт из экзе на практике (экзотической) ограничен случаями,
когда некая библиотека запрашивает у своего хоста оные,
видимо, весьма специфические, функции.
Могу даже привести пример такого действительно экзотического случая. Это аналог ShareMem без использования дополнительной (например, борландовской) DLL.
Leonid Troyanovsky (2005-09-26 11:14:00) [5]
> Lamer@fools.ua © (25.09.05 00:12) [5]
> Формально возможен, но на практике применение экспорта функций
> из EXE сильно ограничено вследствие того, что при загрузке
> EXE'шника функцией LoadLibrary() не выполняется код инициализации.
А зачем грузить екзешник LoadLibrary?
Экспорт из экзе на практике (экзотической) ограничен случаями,
когда некая библиотека запрашивает у своего хоста оные,
видимо, весьма специфические, функции.
--
Regards, LVT.
Игорь Шевченко (2005-09-26 10:57:00) [6]Lamer@fools.ua © (25.09.05 00:12) [5]
> на практике применение экспорта функций из EXE сильно ограничено
> вследствие того, что при загрузке EXE'шника функцией LoadLibrary()
> не выполняется код инициализации
И не только это. Не выполняется настройка адресов (загрузчик не обрабатывает секцию .reloc), поэтому любой позиционно-зависимый код не будет работать.
Lamer@fools.ua (2005-09-25 00:12:00) [7]>> Still Swamp (24.09.05 13:38)
Формально возможен, но на практике применение экспорта функций из EXE сильно ограничено вследствие того, что при загрузке EXE'шника функцией LoadLibrary() не выполняется код инициализации.
Still Swamp (2005-09-24 19:03:00) [8]Блин... ну это конечно... бывает наверно у всех. :)
XProger (2005-09-24 14:06:00) [9]exports
Still Swamp (2005-09-24 13:53:00) [10]В каком из модулей?
У меня говорит компилятор - недопустимое выражение.
Может лиэкспорт находится в Programm?
Kolan (2005-09-24 13:48:00) [11]Да также как и в Dll. Пишешь
export
{Тут список экспортируемых процедур.}