Форум программистов, компьютерный форум CyberForum.ru

Теория плагинов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ ./massdown: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.11' not found (required by ./massdown) http://www.cyberforum.ru/cpp/thread98890.html
всем хай! собираю свою программу на новом железе х86_64 долго не получалось скомпилить. при линковке получал вот такое сообщение: relocation R_X86_64_32 against `a local symbol' я так понял, это из-за того что часть библиотек от которых зависит цель, были собраны как 32-ух битные. но с этим вроде все нормально, пересобрал все либы - скомпилировалось. теперь при запуске получаю такое...
C++ Как понять этот константный указатель? В общем, имеется класс Cat. Объект класса - SimpleCat. И имеется функция с константым указателем: const SimpleCat* const FunctionTwo(const SimpleCat* const theCat) Что обозначают все эти const? Насколько я понимаю: 1. Константный указатель. 2. Может ссылаться только на FunctionTwo 3. Ничего не изменяет в объекте. 4. Ничего не делает с объектом theCat. http://www.cyberforum.ru/cpp/thread82125.html
C++ Перехват и подмена вызываемых функций
Здравствуйте. Нужно подменить вызов таких функций как open(), lstat(), stat(), read(), write(), mkdir(), chdir(), getcwd() для определенного процесса. Интересует мнение других. Как бы вы реализовали эту задачу. Спасибо!
 

Показать сообщение отдельно
Iron Bug
22 / 22 / 0
Регистрация: 06.12.2010
Сообщений: 125
13.03.2011, 11:49     Теория плагинов
Цитата Сообщение от niXman Посмотреть сообщение
Iron Bug, посмотрел вашу статью. но возник всего один вопрос: что в вашем примере, радикально отличается от моего варианта?! единственное это то, что ваш вариант менее функционален, и сильно хуже спроектирован.
или я что-то пропустил? ... подскажите.
это просто кроссплатформенная реализация того, что мне было нужно. с примером, как это собирать. не более. для моей задачи функциональность вполне достаточна и главное: это работает. это не теория, это практика.

Добавлено через 10 минут
Цитата Сообщение от Evg Посмотреть сообщение
Да не экспортируешь их ты. В том понимании, что подразумевается под этим словом в отношении плагинов. Не надо путать понятие экспорта по отношению к библиотеке (когда требуется компиляция программы) и экспорта по отношению к плагину (когда программу перекомпилировать не надо)
вот в моём примере как раз и не надо. просто у меня не плагины, а библиотеки для работы с разными железяками, т.к. я хардварный программист, но не суть. смысл в том, что вызывающей программе не требуется знать ничего, кроме интерфейса. она через него вызывает виртуальные методы и это работает. и дополнительно классы "плагинов" наследуются от базового класса, который сидит в ещё одной библиотеке. таким образом реализовано дефолтное поведение: т.е. если "плагин" не реализовал какой-то метод интерфейса, то будет взят метод из базового класса. базовый класс прицеплен к программе через линковку(но не суть, на самом деле, можно его и через dlopen тащить, просто не требуется), остальное всё грузится динамически через dlopen и оно работает. под разными системами. вызываются перегруженные вирутальные методы интерфейса и т.п. никакой перекомпиляции программы не нужно, ибо она знает только о заголовочнике интрерфейса.
 
Текущее время: 11:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru