| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Указатель на функцию |
| Автор: Artemon 3.6.2009, 07:34 |
| Пишу программу с поддержкой плагинов (exe + Dll's) Как сделать следующее: В exe у меня есть основной класс, который является главным классом всего приложения. Возможноли в dll передать указатель на этот класс, но при этом, чтобы в dll не содержалось самой реализации этого класса. |
| Автор: Earnest 3.6.2009, 07:39 |
| Да чего нельзя-то. Только все public-функции класса нужно будет экспортировать, чтобы они были доступны в DLL. И, конечно, хедер класса нужно подключать к DLL, чтобы компилятор видел его структуру. С точки зрения плагинов, правильнее определить класс-интерфейс (с чистыми виртуальными функциями), а в DLL сделать реализацию это интерфейса. После этого потребуется только экспорт функции-фабрики, которая будет возвращать указатель на интерфейс. |
| Автор: Artemon 3.6.2009, 09:28 | ||||
Не понял, каким образом можно экспортировать методы из exe ?
Я наоброт не хочу реализацию делать в DLL, т.к. она уже сть в exe и должна вызываться оттуда. Грубо говоря в exe движок, а dll вызывает методы этого движка. |
| Автор: Alek86 3.6.2009, 10:18 |
| если попроще, то в DLL должна быть экспортирована функция, что принимает указатель на интерфейс IMain и с ним работает, как тебе нужно а EXE загружает DLL и вызывает эту функцию, передавая ей указатель на свой класс - реализацию IMain |
| Автор: Artemon 3.6.2009, 11:29 |
| Всем спасибо, решил проблему, добавив абстрактный класс, у казатель на который передается в DLL. |