Exe + DLL

antox
Дата: 15.06.2019 16:38:43
Подскажите, как вызвать функцию exe из dll ?

В ехе загружаю dll, все норм, но иногда необходимо, чтобы dll вызывала функцию ехе с параметрами

Я так понимаю, что для этого необходимо передавать функцию ехе в длл в виде параметра? Или можно как-то по-другому? Если нельзя, то как правильно передать фцию в качестве параметра?
Dimitry Sibiryakov
Дата: 15.06.2019 17:22:53

Читай что такое callback и с чем его едят. А лучше - забудь про DLL, это чаще всего
совершенно ни к чему.

Posted via ActualForum NNTP Server 1.5

ёёёёё
Дата: 15.06.2019 17:50:43
antox,

см. "процедурные типы".
ёёёёё
Дата: 15.06.2019 17:53:25
antox,

https://docs.microsoft.com/en-us/windows/desktop/api/libloaderapi/nf-libloaderapi-loadlibraryexa + DONT_RESOLVE_DLL_REFERENCES

Например. Еще есть интерфейсы, процедурные типы. Можно в dll объект передать, а внутри длл обращаться к методу объекта. Или сразу процедуру.
asutp2
Дата: 15.06.2019 17:55:36
Правильное решение - спроектировать архитектуру так, чтобы у dll не было необходимости обращаться к функциям из exe
x1ca4064
Дата: 15.06.2019 18:07:46
antox

Я так понимаю, что для этого необходимо передавать функцию ехе в длл в виде параметра? Или можно как-то по-другому?


Еще EXE может экпортировать функцию, а DLL, в свою очередь, импортировать через GetProcAddress
GunSmoker
Дата: 15.06.2019 20:21:32
antox, тынц.
antox
Дата: 16.06.2019 02:18:53
Dimitry Sibiryakov,

Вот все говорят dll не применять, но как тогда реализовать, общие файлы для нескольких программ? Но так что-нибудь переделаешь, а через несколько месяцев не поймёшь, почему другая программа (где это не было учтено) перестала работать... Кто-то рекомендует использовать bpl, но детально непонятен алгоритм...
antox
Дата: 16.06.2019 02:19:43
*реализовать?
rgreat
Дата: 16.06.2019 02:21:22
antox,

Зачем тебе "общие файлы для нескольких программ"?