Re[4]: Телепаты-то в отпуске!
От: _b_l_  
Дата: 18.09.10 10:20
Оценка:
Здравствуйте, Centaur, Вы писали:

C>Здравствуйте, Sheridan, Вы писали:


C>
S>>class Exporting
S>>{
S>>public:
S>>  virtual int func() = 0;
S>>  virtual float other() = 0;
S>>};
C>


C>Это поломается при использовании между компиляторами с разным размером и/или представлением int и float или разной конвенцией вызовов по умолчанию. На Windows я бы переписал так:


На Windows для этих целей лучше использовать COM.

C>Поскольку такого же вида определения используются в Windows SDK, компилятор, который не обеспечит совместимость, не сможет компилировать виндовые приложения.


C>Ну и если в реализующем классе используются какие-нибудь классы (std::string, контейнеры, etc.), в интерфейсе их показывать нельзя. Можно дать доступ к внутренностям (s.c_str(), s.data(), &*s.begin(), &s[0]), с учётом времени жизни соответствующих ссылок и указателей.


С другой стороны, если всё собирать одним компилятором с одинаковыми настройками, то все эти сложности ни к чему.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.