![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как dll узнать значение глобальной переменной, объявленной... [D7, 95/98, XP]
FF © (2007-02-02 11:01:00)...в загрузившем ее(dll) процессе?
Заранее спасибо!
evvcom (2007-02-02 11:58:00) [1]> [6] FF (02.02.07 11:42)
Это потому что ее значение равно 666 :o)
Сергей М. (2007-02-02 11:53:00) [2]Значит она у тебя не глобальная
TRUNK (2007-02-02 11:51:00) [3]А не проще ли сразу после загрузки DLL передать ей необходимое значение?
FF (2007-02-02 11:42:00) [4]Попробовал, выдает ошибку
[Error] Unit1.pas(29): Identifier 'GlobalVariable' cannot be exported
evvcom (2007-02-02 11:40:00) [5]> [3] Сергей М. © (02.02.07 11:25)
Еще проще будет:
project HostApplication;
...
MyLibraryProc(GlobalVariable);
Чем не способ? :)
FF (2007-02-02 11:32:00) [6]> Сергей М. © (02.02.07 11:25) [3]
Спасибо! Сейчас попробую
Сергей М. (2007-02-02 11:25:00) [7]Ну вот один из простейших способов:
project HostApplication;
...
var
GlobalVariable: Integer = 666;
..
exports GlobalVariable;
project MyLibrary;
..
var
pGlobalVariable: PInteger;
..
pGlobalVariable := GetProcAddress(GetModuleHandle(nil), 'GlobalVariable');
ShowMessage(IntToStr(pGlobalVariable^));
FF (2007-02-02 11:11:00) [8]> Сергей М. © (02.02.07 11:05) [1]
Желательно без ассемблера
Сергей М. (2007-02-02 11:05:00) [9]Как угодно.
Способов для этого воз и маленькая тележка.
Тебя какой интересует ?