![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
можете, пожалуйста, привести пример?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#2 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
![]()
Точно так же, как и в dll
Код:
пыщь
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
спасибо за ответ
![]() но я понял что не правильно сформулировал вопрос ![]() нужно чтото типа API к моей программе то есть получение данных из нее и отправка данных в неё(передача команд и тд...запросы и прочее) заранее спасибо Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#4 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Цитата из Delphi World
Цитата:
Цитата:
I'm learning to live...
|
||
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 29.05.2009
Сообщений: 320
|
![]()
А можно уточняющий пример насчет exe-like-dll? У меня получалось на Си, а тут:
Код:
|
![]() |
![]() |
![]() |
#6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Неее. там не все так гладко будет...
А чего именно из EXE нужно?
I'm learning to live...
|
![]() |
![]() |
![]() |
#7 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
![]()
Вот так вроде
Код:
Использовать модель вызова stdcall вообще-то не обязательно, просто чтоб народ не путать, если кто-то захочет импортировать функцию
пыщь
Последний раз редактировалось JTG; 22.07.2009 в 15:15. |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 29.05.2009
Сообщений: 320
|
![]()
Точно, DllMain то нет. Почти работает - создал один прожект:
Код:
Код:
Вызов процедуры в Project1 из самое себя сработал только так: Код:
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 29.05.2009
Сообщений: 320
|
![]() Код:
Последний раз редактировалось BaronTreep; 25.07.2009 в 15:03. |
![]() |
![]() |
![]() |
#10 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
![]()
Короче это всё изврат. При попытке экзешника загрузить самого себя через LoadLibrary, она вернёт дескриптор уже загруженного модуля, это легко проверить, добавив в Button1Click
Код:
Теперь что будет, если экспорт в одном экзешнике, а вызываем его функции из другого: в МСДН мелким шрифтом написано "If the specified module is an .exe file, static imports are not loaded": при загрузке секция импорта не заполняется и вместо того же MessageBox в экспортируемой функции будут адрес, ведущий в космос. Если в функции чистая арифметика и т.д. - всё ок, обращение к импорту - ошибка. Чтоб подгрузить оттуда другой модуль, видимо придётся "по Рихтеру" находить kernel32.dllи работать через LoadLibrary/GetProcAddress (или же передавать их адреса параметрами функции), или каким-то образом вручную заполнять импорт.
пыщь
Последний раз редактировалось JTG; 25.07.2009 в 22:28. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
использование процедур и функций! | ...Оленька... | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 24.12.2008 15:33 |
Глобальность функций и процедур | rivers | Общие вопросы Delphi | 5 | 01.08.2008 20:35 |
Параметры процедур и функций | shurik_7866 | Общие вопросы Delphi | 8 | 10.12.2007 19:49 |