Форум программистов, компьютерный форум 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() для определенного процесса. Интересует мнение других. Как бы вы реализовали эту задачу. Спасибо!
 

Показать сообщение отдельно
niXman
Эксперт C++
3134 / 1446 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
10.03.2011, 16:41  [ТС]     Теория плагинов
а как экспортировать классы из плагина?
к примеру, мне нужно, чтоб некоторый плагин определял реализацию некоторого класса. при этом, программа, знает экспортируемый тип только по интерфейсу. тогда, полагаю, в плагине должна быть функция типа create()

пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// интерфейс.
class i_type {
   i_type(int);
   ~i_type();
 
   virtual int get() const = 0;
   virtual int add(int) = 0;
};
 
// реализация для типа в плагине
class type: public i_type {
   type(int v):i_type(v) {}
   virtual ~type() {}
 
   virtual int get() const { return 3; }
   virtual int add(int v) { return 3+v; }
};
 
// функция плагина создающая объект
i_type* create(int v) {
   return new type(v);
}
какие в этом случае меня ожидают проблемы, возможно в будущем?
как все же экспортировать классы из плагина?

спасибо.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru