Здравствуйте, люди
![](/Forum/Images/smile.gif)
Я пишу библиотеку (очень желательно DLL), которая должна:
1) Быть использована из раных компиляторов.
2) Содержать кроме функций так же классы.
Пункты 1 и 2, как я понял — взаимоисключающие, если речь идёт о DLL, так?
Или между разными реализациями хотя бы только C++ всё-таки есть способ использовать классы?
Пока что у меня такие мысли (имхи, так сказать):
1) Написать DLL только с функциями, все классы сделать как статичные LIB.
2) Создать кросс-компиляторный код и создать версии lib_msvc.dll, lib_borland.dll, итд...
3) Оформить все классы через что-то вроде COM или его упрощённого самописного аналога.
4) То же что и 2, но вообще сделать отдельные проекты под разные среды.
Первый вариант плох тем, что я изначально хотел получить всё-же DLL, который можно обновлять не перекомпилируя всё.
Второй плох тем, что надо как-то написать код, что б он компилился много где, и ещё возникает куча DLL.
Третий плох тем, что COM — тяжелая и сложная штуковина, а своё микро-подобие может напороться на грабли, о которых я не подозреваю.
Четвёртый то же что и второй, но ещё и сложность изменения кода, и кучи проектов, путаница.
Какой способ лучше и почему? Или может есть ещё более лучший способ?
PS: Просьба в гугль не посылать (разве что с указанием текста запроса), отказаться от задачи не предлагать