Делаю библиотеку для использования разными компиляторами
От: Sakura-chan Россия http://sakuranoanime.ru
Дата: 22.11.07 11:02
Оценка:
Здравствуйте, люди
Я пишу библиотеку (очень желательно 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: Просьба в гугль не посылать (разве что с указанием текста запроса), отказаться от задачи не предлагать
Itsumo sobani, itsumo hitori.
Re: Делаю библиотеку для использования разными компиляторами
От: MindWrapper  
Дата: 22.11.07 11:22
Оценка:
Здравствуйте, Sakura-chan, Вы писали:

SC>Здравствуйте, люди

SC>Я пишу библиотеку (очень желательно DLL), которая должна:
SC>1) Быть использована из раных компиляторов.
SC>2) Содержать кроме функций так же классы.

Классы можно вынести в хедер файле поставляемом вместе с библиотекой. Обернуть в них вызов вызов API твоей DLL. У Вилсона есть глава посвященная этой технике.
Re: Делаю библиотеку для использования разными компиляторами
От: Sergey Chadov Россия  
Дата: 24.11.07 14:32
Оценка:
Здравствуйте, Sakura-chan, Вы писали:

SC>Третий плох тем, что COM — тяжелая и сложная штуковина, а своё микро-подобие может напороться на грабли, о которых я не подозреваю.

COM на уровне "dll с классами" не тяжелый и не сложный. Другой вопрос, если хочется например возможности использования скажем из Jscript или Ruby. Тогда интерфейсы придется писать под Automation, а это тот еще геморрой.
--
Sergey Chadov

... << RSDN@Home 1.2.0 alpha rev. 685>>
Re[2]: Делаю библиотеку для использования разными компилятор
От: Sakura-chan Россия http://sakuranoanime.ru
Дата: 26.11.07 10:08
Оценка:
Здравствуйте, Sergey Chadov, Вы писали:

SC>Здравствуйте, Sakura-chan, Вы писали:


SC>>Третий плох тем, что COM — тяжелая и сложная штуковина, а своё микро-подобие может напороться на грабли, о которых я не подозреваю.

SC>COM на уровне "dll с классами" не тяжелый и не сложный.

В смысле написания своей альтернативы или в сымсле использования стандартного?

SC> Другой вопрос, если хочется например возможности использования скажем из Jscript или Ruby. Тогда интерфейсы придется писать под Automation, а это тот еще геморрой.


Ну, мне, по счастью, достаточно разновидностей C++ (Borland5, Builder, Dev, MSVC), максимум — дельфи или асм, не более.
Itsumo sobani, itsumo hitori.
Re[2]: Делаю библиотеку для использования разными компилятор
От: Sakura-chan Россия http://sakuranoanime.ru
Дата: 26.11.07 10:11
Оценка:
Здравствуйте, MindWrapper, Вы писали:

MW>Здравствуйте, Sakura-chan, Вы писали:


SC>>Здравствуйте, люди

SC>>Я пишу библиотеку (очень желательно DLL), которая должна:
SC>>1) Быть использована из раных компиляторов.
SC>>2) Содержать кроме функций так же классы.

MW>Классы можно вынести в хедер файле поставляемом вместе с библиотекой. Обернуть в них вызов вызов API твоей DLL. У Вилсона есть глава посвященная этой технике.


Хм, интересная мысль. Мне как-то в голову такое не приходило
А кто такой Вилсон?
"Уилсон М. — C++:практический подход к решению проблем программирования" -- это оно?
Itsumo sobani, itsumo hitori.
Re[3]: Делаю библиотеку для использования разными компилятор
От: ShaggyOwl Россия http://www.rsdn.org
Дата: 26.11.07 10:26
Оценка:
Здравствуйте, Sakura-chan, Вы писали:

SC>Хм, интересная мысль. Мне как-то в голову такое не приходило

На практике видел такой подход в HTMLayout (http://www.terrainformatica.com/htmlayout/)
Работает
Если будет интересно, см. файл HTMLayoutSDK\include\htmlayout_dom.hpp да и прочие *.hpp файлики.
Хорошо там, где мы есть! :)
Re[4]: Делаю библиотеку для использования разными компилятор
От: Sakura-chan Россия http://sakuranoanime.ru
Дата: 26.11.07 10:45
Оценка:
Здравствуйте, ShaggyOwl, Вы писали:

SO>На практике видел такой подход в HTMLayout (http://www.terrainformatica.com/htmlayout/)

SO>Работает
SO>Если будет интересно, см. файл HTMLayoutSDK\include\htmlayout_dom.hpp да и прочие *.hpp файлики.

Точно, поглядел. В общем, всё, идею я понял, дальше сам. Спасибо!
Itsumo sobani, itsumo hitori.
Re[3]: Делаю библиотеку для использования разными компилятор
От: Sergey Chadov Россия  
Дата: 26.11.07 17:25
Оценка:
Здравствуйте, Sakura-chan, Вы писали:


SC>В смысле написания своей альтернативы или в сымсле использования стандартного?

Стандартного. Заготовка создается VC-шным визардом, нужно только методы прописать.
--
Sergey Chadov

... << RSDN@Home 1.2.0 alpha rev. 685>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.