Re[2]: Телепаты-то в отпуске!
От: Sheridan Россия  
Дата: 16.09.10 20:02
Оценка:
Приветствую, Erop, вы писали:

E> Совсем кроспслатформенно никак. Но если ты расскажешь подробности, то многое может оказаться возможным...

ок )

E> Например, если код, который экспортирует класс и код, который его импортирует, находятся на одной машине и работают под управлением одной и той же платформы,

Конечно.

E> то часто можно сделать абстрактный класс, содержащий, быть может только pure virtual методы и inline методы, без статических данных в них.

E> Главное -- никаких данных (полей) в интерфейсе!!!
E> Теперь в экспортирующем модуле заводим функцию, которая возвращает указатель на такой интерфейс. При этом из этого интерфейса выводим класс, в котором всё реализуем и указатель на такой класс мы и выдаём наружу...
class Exporting
{
public:
  virtual int func() = 0;
  virtual float other() = 0;
};

class My : public Exporting
{
public:
  int funct() { return m_str.size(); }
  float other() { return 4.4; } 
private:
  std::string m_str;
};

extern "C"
{
  Exporting * getClass();
}
Exporting * getClass()
{
  return new My();
}

Так?
avalon 1.0rc3 rev 306, zlib 1.2.3 (17.12.2009 01:06:14 MSK +03:00)(Qt 4.6.0)
Matrix has you...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.