Вызов функции exe из dll
Стоит задача получить из динамической библиотеки доступ к некой функции в приложении, которое загрузило эту библиотеку.
С получением доступа к функции библиотеки из приложения все ясно, но как поступить если нужно сделать наоборот: из dll к exe?
На данный момент эту проблему решил по аналогии с dll, dllexport-ом соответствующей функции из exe, но это в моем случае не очень хорошее решение.
Как еще можно получить доступ к функции в exe из dll?
Цитата: lxx
Как еще можно получить доступ к функции в exe из dll?
Передать ее адрес в DLL во время инициализации приложения.
У меня тоже была мысль передавать ссылку на функцию при LoadLibrary, но как это реализовать - не знаю.
Цитата: lxx
А можно поподробней, или пример?
У меня тоже была мысль передавать ссылку на функцию при LoadLibrary, но как это реализовать - не знаю.
У меня тоже была мысль передавать ссылку на функцию при LoadLibrary, но как это реализовать - не знаю.
Создать функцию в DLL, которая будет инициализировать свои внутренние структуры. В нее и передать указатель на ваш колбэк.
а какая принципиальная разница как передавать адрес, напрямую (как параметр) или через GetProcAdress?
Цитата: oxotnik333
а какая принципиальная разница как передавать адрес, напрямую (как параметр) или через GetProcAdress?
1. Не должна dll знать об exe.
2. Передавать можно разные ф-ции в зависимости от ситуации.
3. Нет таблицы экспорта.
4. Значительно удобнее и оптимальнее по скорости и объему.
5. Callback - общеприменительная практика.