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

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

Как вызвать функцию в DLL из EXE? [D5, WinXP]


a413 ©   (2002-09-04 16:22:00) 

Возникла проблема вызова функции в DLL из EXE. Как это сделать? В функции GetProcAdress требуется указатель на DLL, как получить указатель на загруженный EXE-шник? Можно ли как нибудь простым способом использовать глобальный переменные в DLL объявленные в EXE?


a413   (2002-09-04 20:19:00) [1]

Огромное спасибо! Но если я правильно понял, для глобальных переменных придется проделывать такую же процедуру? Заводить указатель в DLL, и через функцию устанавливать его в нужное значение (как в EXE).


Старый Паскалист   (2002-09-04 17:13:00) [2]

PPS Это всё так, теория.
В жизни же гораздо проще последовать совету neg2001 (04.09.02 16:30)


Старый Паскалист   (2002-09-04 17:06:00) [3]

PS Только лучше вместо LoadLibrary использовать GetModuleHandle;
(и FreeLibrary тогда не надо)


Старый Паскалист   (2002-09-04 17:00:00) [4]

LoadLibrary можеьт не только динамически загрузить ДЛЛ,
но и вернуть HMODULE любого уже загруженного в память процесса модуля, будь то dll или exe.

s := ParamStr(0); // Имя ехешника
hinstExe := LoadLibrary(PChar(s));
proc := GetProcAddress(hinstExe, "SomeProc");

...

FreeLibrary(hinstExe);

Но, естественно, ты должен сделать в основной программе

exports
SomeProc;


a413   (2002-09-04 16:43:00) [5]

А повнимательнее прочитать про LoadLibrary, GetProcAddress?
--------
Ну могу найти.... Облысею быстрее...


Александр Спелицин   (2002-09-04 16:30:00) [6]

А повнимательнее прочитать про LoadLibrary, GetProcAddress?


neg2001   (2002-09-04 16:30:00) [7]

В dll нужно передать указатель на твою функцию, например в качестве параметра какой либо другой функции, а в dll- ке вызвать функцию используя этот указатель.


Наверх

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