IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   Delphi: получение значения переменной из exe в dll (https://www.imho.ws/showthread.php?t=80601)

anakarn 26.02.2005 21:52

Delphi: получение значения переменной из exe в dll
 
Нужно, чтобы dll могла как-то получать значение переменной, которая создаётся exe-шником. Как это сделать? Я так понимаю, нужна работа с памятью, но как именно? И можно ли вообще?

J. Bond 27.02.2005 10:57

Если exe и dll ты сам пишешь, то:
1) если они находятся в одном процессе то проще всего сделать в dll експортируемую функцию корую вызывать из ехе и передавать ей значение переменной
2) если они находятся в разных процессах то можно использовать memory mapped files, т.е. в виртуальной памяти создается блок который доступен из любого процесса. Туда и записывай свою переменную.

/7y3uK 27.02.2005 14:39

А не проще сделать в ДЛЛке геттер и сеттер нужной переменной синхронайз методом в самой ДЛЛ и из экзешника дергать этот метод передавая значение переменной? или ты хочешь из чужой программы дернуть переменную?

anakarn 27.02.2005 20:57

/7y3uK
Хочу из своей. Это мне нужно было чтобы dll могла отслеживать видимость окна: эта переменная в событиях OnShow и OnHide менялась бы. Но судя по вашим ответам вижу, что лучше использовать WinAPI функцию для проверки видимости окна :)

/7y3uK 28.02.2005 15:53

какие проблемы... просто при старте процесса в длл-ку приходит дескриптор окна (читай: пишем сеттер из программы в переменную длл :) засовываем DC и HANDLE)... а дальше длл-ка будет мониторить все что связано с этим окном (дескриптором) - именно по API теперь очень легко найти нужное окно и сделать с ним усе что угодно...
Вообще такие вещи ХУКами называют :) и для этого удобно использовать обычный ХУК (хотя обычно ими стараются не пользоваться), зато гарантированно будет работать... читай про HOOKS


Часовой пояс GMT +4, время: 00:52.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.