![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
???Как запустить программу??? [Win95/98]
Nubie © (2002-05-21 02:56:00)Народ такая вот проблема:
(1)Гружу EXE файл через LoadLibrary , затем получаю точку входа программы и вызываю ее.
Работает...:)
(2)Гружу EXE файл через CrateFileMapping в контекст процесса , затем
получаю точку входа программы и вызываю ее.
Не работает...GPF...:(:(:(
В дебаге вроде видно следующее:
1>>>call dword ptr [ds:...]
2>>>call dword ptr [Proc+..(...)]
В чем сдесь дело???
Giga-Byte (2002-05-21 17:21:00) [1]uses ShellApi;
...
ShellExecute(<параметры посмотришь>);
paul_shmakov (2002-05-21 14:24:00) [2]http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1021935556&n=5
Digitman (2002-05-21 08:51:00) [3]При использовании CrateFileMapping() грузи образ исп.файла в АП процесса по адресу, соответствующему значению ImageBase в его опциональном заголовке. Если грузишь по иному адресу, придется пересчитывать вручную все таблицы релокации абсолютных адресов (что LoadLibrary(), в отличии от CrateFileMapping() делает автоматически)
Кроме того, при вызове ф-ции CrateFileMapping() следует использовать как минимум флаги SEC_IMAGE | PAGE_EXECUTE