|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.07.2012, 00:32 | #1 |
Подтвердите свой е-майл
Регистрация: 11.04.2012
Сообщений: 85
|
Передать че-нибудь в DLL / Из DLL прочитать переменную EXE
Случился вынос мозга, если вызывать функции и процедуры из DLL то все понятно, через них можно передавать всякие там цифры, тексты и т.п.
А как в обратную сторону? У меня в exe есть глобальная переменная, текст, как мне передать её в процедуру в dll т.е. чтобы dll подхватила это и начала там че-то делать с этим. EXE: Код:
Код:
|
30.07.2012, 01:49 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
вспомнить про аргументы функций и не искать ж**у себе.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
30.07.2012, 02:51 | #4 |
Подтвердите свой е-майл
Регистрация: 11.04.2012
Сообщений: 85
|
|
30.07.2012, 05:00 | #5 | ||
not
Участник клуба
Регистрация: 27.06.2009
Сообщений: 1,399
|
Цитата:
Может получить в длл, значение переменной из exe? А что собственно такое длл? Это тот же кусок кода, который грубо говоря "Аттачиться" в exe при загрузке. Это как бы одно целом можно так сказать. ну это не трудно, сперва узнаем адрес глобальной переменной в exe. к примеру в длл, есть функция: Код:
Цитата:
Как получить адрес переменной в exe? Легко: x := Cardinal(@value); Value - где ваша переменная, в x - будет занесен адрес. Это как бы приведение подобно в C++ reinterpret_cast. У меня почему-то нету типа PInteger? ну это не трудно объявить вверху: Код:
Важно! Ваша exe должна обязательно загрузить длл хммм, не пойму зачем такой индийский код, вроде на правки, на инжекты различного типа не похоже... Возможно экскременты какие-то от рук студентов (проект вынос мозга), а хотя ладно, занимайтесь (но что такое dll надо по учить еще по лучше). =) Последний раз редактировалось VintProg; 30.07.2012 в 05:26. Причина: Да борщик с капусткой, вариться туда сюда бегаю, дописываю ответы,но борщик не красный? Ладно разберусь сам буду отлаживать. |
||
30.07.2012, 06:44 | #6 |
Подтвердите свой е-майл
Регистрация: 11.04.2012
Сообщений: 85
|
VintProg, сложно=)
Походу я хотел иметь суперглобальную переменную, к которой раз и обратился, и её значение(integer) хоть куда хоть где пиши. Это значение бы хранилось всегда в одном месте. Наверное именно это. Короче я не знаю че мудрил, я все сделал, Значение offset определяется в процедуре dll(оно неизвестно заранее), потом переносится в X уже в exe-шники чтобы я мог фигачить его в едиты, листбоксы и прочее. Правда, можно сразу брать из dll, но че меня так прет я не знаю app: Код:
Код:
Налево вашу)))) Пойдет. Код:
Последний раз редактировалось WhiskasTM; 30.07.2012 в 07:01. Причина: Курил) |
30.07.2012, 14:47 | #7 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Рыдаю. Просто рыдаю.
Волшебное слово - Callback (a.k.a. функция обратного вызова). Код:
Код:
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
30.07.2012, 17:07 | #8 |
Подтвердите свой е-майл
Регистрация: 11.04.2012
Сообщений: 85
|
Мдаа, волшебство то что нужно. Спс. Кстати я че то не подумал про LoadLibrary, а то все external да external
|
30.07.2012, 18:01 | #9 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Это не имеет значения.
Без LoadLibrary: Код:
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
02.08.2012, 13:33 | #10 |
Форумчанин
Регистрация: 17.03.2009
Сообщений: 977
|
ой а чего исходящие переменные не работают из длл???
то есть. где s_lok входящая а s2_loc исходящая. Код:
Код:
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как Передать Переменную В Dll Из Вызывающей Программы? | system21rus | C++ Builder | 0 | 16.04.2012 11:47 |
прочитать файл *.dll | Ципихович Эндрю | Свободное общение | 15 | 06.11.2011 16:24 |
Запуск Load.dll (бывшая Load.exe) в дереве проц-ов, Как запустить прогой на C# .dll-ку | kapustin | Общие вопросы .NET | 10 | 23.09.2009 22:20 |
из .exe TBitMap передать в DLL(форма) | lexaltd | Мультимедиа в Delphi | 13 | 14.07.2009 17:47 |
взять переменную из dll | Roof | Общие вопросы Delphi | 15 | 27.08.2008 16:40 |