DLL on wxWidgets

Это русская секция форума wxWidjets. В этой секции вы можете обсуждать любые вопросы, связанные с wxWidgets на вашем родном языке.
Post Reply
teolog
Earned a small fee
Earned a small fee
Posts: 11
Joined: Wed Jun 08, 2005 12:46 pm

DLL on wxWidgets

Post by teolog » Wed Mar 05, 2008 9:00 am

Какое то время назад пытался написать библиотечку использующую wxWidgets которая должна была работать отдновременно с программами использующими и не использующими wxWidgets, в Debug и Release вариантах. После долгого шаманства и копания по форумам дело кончилось добавлением функции InitWidgets которую главная софтина вызывает только если сама виджеты не использует. Однако проблема с несоответствием режимов сборки осталась.
Может кто нибудь знает нормальный переносимый способ самоинециализации библиотеки так чтобы она ни счем не конфликтовала и в ней нормально работали UDP и TCP/IP сокеты.
По сей день в синхронном режиме в библиотеке по-человечески не работают, пришлось писать собственные.
wxMSW 2.8.7 on VC2005

tan
Moderator
Moderator
Posts: 1471
Joined: Tue Nov 14, 2006 7:58 am
Location: Saint-Petersburg, Russia

Re: DLL on wxWidgets

Post by tan » Wed Mar 05, 2008 9:18 am

Привет,
teolog wrote:Какое то время назад пытался написать библиотечку использующую wxWidgets которая должна была работать отдновременно с программами использующими и не использующими wxWidgets, в Debug и Release вариантах. После долгого шаманства и копания по форумам дело кончилось добавлением функции InitWidgets которую главная софтина вызывает только если сама виджеты не использует. Однако проблема с несоответствием режимов сборки осталась.
Ну тут еще важное значение имеет какой способ линковки wx библиотеки используется (dll or static). А также всякие другие тонкости (особенно если сам exe виджетами не пользуется), ну к примеру, один или несколько wx dll-ек будет при этом юзаться. В общем, для нетривиальных конфигураций (а тривиальная реально только одна - exe и dll-ки юзают wx и wx библиотеки везде линкуются динамически, в этом случае у меня никогда проблем не возникало) приходится шаманить :)
teolog wrote: Может кто нибудь знает нормальный переносимый способ самоинециализации библиотеки так чтобы она ни счем не конфликтовала и в ней нормально работали UDP и TCP/IP сокеты.
Все-таки, хотелось бы знать, для какой конфигурации? Если речь идет о любом возможном сочетании, то, я такого решения пока не знаю :) (да просто и не приходилось с таким сталкиваться), возможно, такого решения просто нет :)
OS: Windows XP Pro
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10

teolog
Earned a small fee
Earned a small fee
Posts: 11
Joined: Wed Jun 08, 2005 12:46 pm

Re: DLL on wxWidgets

Post by teolog » Fri Mar 14, 2008 9:33 am

tan wrote:Привет,
Ну тут еще важное значение имеет какой способ линковки wx библиотеки используется (dll or static). А также всякие другие тонкости (особенно если сам exe виджетами не пользуется), ну к примеру, один или несколько wx dll-ек будет при этом юзаться. В общем, для нетривиальных конфигураций (а тривиальная реально только одна - exe и dll-ки юзают wx и wx библиотеки везде линкуются динамически, в этом случае у меня никогда проблем не возникало) приходится шаманить :)
Все-таки, хотелось бы знать, для какой конфигурации? Если речь идет о любом возможном сочетании, то, я такого решения пока не знаю :) (да просто и не приходилось с таким сталкиваться), возможно, такого решения просто нет :)
Сочитание простое wxWidgets в dll.
Библиотечка тоже dll.

Программы либо не используют виджетов вообще, либо только те-же с таким же способом линковки. Библиотечка на всех одна и способа узнать кто её поднимает нет.
wxMSW 2.8.7 on VC2005

ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 3798
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Post by ONEEYEMAN » Sat Mar 22, 2008 3:08 am

Привет,
Насчет TCP/IP/UDP не знаю но у меня работает GUI-библиотека в M$W/*nix на wx которая вызывается из wx-приложения (тоже GUI).

Все работает как часы... :)

teolog
Earned a small fee
Earned a small fee
Posts: 11
Joined: Wed Jun 08, 2005 12:46 pm

Post by teolog » Tue Mar 25, 2008 11:49 am

ONEEYEMAN wrote:Привет,
Насчет TCP/IP/UDP не знаю но у меня работает GUI-библиотека в M$W/*nix на wx которая вызывается из wx-приложения (тоже GUI).

Все работает как часы... :)
Из wx-приложения все всегда пашет как часы- инициализация в основном модуле. тут трабла в том что должно работать в обоих случаях.
wxMSW 2.8.7 on VC2005

ONEEYEMAN
Part Of The Furniture
Part Of The Furniture
Posts: 3798
Joined: Sat Apr 16, 2005 7:22 am
Location: USA, Ukraine

Post by ONEEYEMAN » Tue Mar 25, 2008 2:02 pm

teolog,
Несколько вопросов
1. На код инициализации библиотеки можно глянуть
2. Для какой системы писалось
3. Версия wx
4. Кто вызывает библиотеку - на чем написано

Спасибо.

tan
Moderator
Moderator
Posts: 1471
Joined: Tue Nov 14, 2006 7:58 am
Location: Saint-Petersburg, Russia

Post by tan » Wed Mar 26, 2008 7:34 am

Привет.
teolog wrote: Из wx-приложения все всегда пашет как часы- инициализация в основном модуле. тут трабла в том что должно работать в обоих случаях.
Я тут подумал, что в таком варианте надо делать DLL статическм слинкованной с wx библиотекой, тогда у тебя в любом случае в ней будет своя собственная копия библиотеки. Инициалиализируй ее в dll и все должно работать, независимо от того откуда это вызвано. В этом случае, конечно, будут определенные ограничения, но, поскольку, это предполагается использовать и в wx и не wx это не должно быть проблемой.
OS: Windows XP Pro
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10

Post Reply