Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Возможен ли экспорт процедур из 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
{Тут список экспортируемых процедур.}


Наверх

Титульная страница Поиск, карта сайта Написать письмо