Re[7]: [UPD] rev. 8
От: Splin Беларусь  
Дата: 05.04.07 14:17
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

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


S>>Имеет смысл удалить из сборки *Impl классы чтобы не путать рядовых пользователей.


SDB>Я уж было собирался это сделать, но обнаружилась занятная вещь — DDX_CONTROL_HANDLE() не вполне корректно обрабатывает ситуацию, когда он вызывается повторно, и плюется ассертами, что мне не очень понравилось. А с "моими" *Impl-классами и DDX_CONTROL() подобного не наблюдается. Детально разбираться, что там не так, у меня пока, к сожалению, не было времени.


Насчет ASSERT не понял. Вот код обоих методов:
// Full control subclassing (for CWindowImpl derived controls)
    template <class TControl>
    void DDX_Control(UINT nID, TControl& ctrl, BOOL bSave)
    {
        if(!bSave && ctrl.m_hWnd == NULL)
        {
            T* pT = static_cast<T*>(this);
            ctrl.SubclassWindow(pT->GetDlgItem(nID));
        }
    }

// Simple control attaching (for HWND wrapper controls)
    template <class TControl>
    void DDX_Control_Handle(UINT nID, TControl& ctrl, BOOL bSave)
    {
        if(!bSave && ctrl.m_hWnd == NULL)
        {
            T* pT = static_cast<T*>(this);
            ctrl = pT->GetDlgItem(nID);
        }
    }

Не трудно заметить что он практически идентичен и фильтрует уже проинициализированные контролы.
Даже не знаю почему у Вас ASSERT, но, думаю, не из-за DDX_CONTROL_HANDLE.

В случае с DDX_CONTROL происходит сабклассинг, т.е. подмена оконной процедуры. Эта процедура нужна лишь для контролов, которые заменяют стандартные (например CHyperLink, CSortListViewCtrl и т.п. из файла atlctrlx.h) и обрабатывают сообщения. Пользоваться сабклассингом нужно осторожно, т.к. во-первых нужно вызывать UnsubclassWindow, во-вторых если объект в памяти будет разрушен до разрушения окна и не вызван UnsubclassWindow, то программа упадет из-за того, что адрес оконной процедуры будет не действителен. Это приводит к трудно уловимым ошибкам. В случае DDX и диалога это не критично, но... Ваш метод связан с дополнительным расходом памяти (см. ATL::CWindowImplRoot и ATL::CWindowImplBaseT). В случае обычного контрола, в классе храниться только его HWND (см ATL::CWindow) — минимум дополнительных расходов.

Надеюсь я достаточно хорошо пояснил почему эти классы не просто не нужны, а даже плохи .
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: [ANN] myWTL
От: Splin Беларусь  
Дата: 05.04.07 14:29
Оценка:
Здравствуйте, Splin, Вы писали:

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


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


S>>>Забыл добавить, что некоторые ошибки уже исправлены в WTL 8.0 (некоторые при моем участии ). Автору сборки хочу посоветовать внимательнее просмотреть последние изменения и убрать из описания официально исправленные ошибки.


SDB>>Гх-м-м... я-то из CVS все качаю и список исправлений/дополнений каждый раз цитирую для очередной ревизии...


S>Я тоже оттуда качаю, но еще и на почту получаю нотификации. Подписка удобна — как только кто-то что-то залил, приходит письмо с изменениями.

S>Своим сообщением хотел сказать только то, что не стоит приписывать сборке исправления сделанные уже в офф. версии .

Я имел ввиду список испавлений выложеный на сайте

Исправления и дополнения:
[PRB] WinCE + CAppWindowBase::ActivatePreviousInstance()
[PRB] Ошибка в реализации функции SCALERECT из <DeviceResolutionAware.h>
[PRB] VS 2005 + WTL 7.5 + WinCE + CMenuT
[PRB] WTL 7.5 + WinCE + CString + no automatic namespaces
[PRB] WTL 7.5 + WinCE + _WTL_NO_AUTOMATIC_NAMESPACE

... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[8]: [UPD] rev. 8
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 05.04.07 14:35
Оценка:
Здравствуйте, Splin, Вы писали:

S>Не трудно заметить что он практически идентичен и фильтрует уже проинициализированные контролы.

S>Даже не знаю почему у Вас ASSERT, но, думаю, не из-за DDX_CONTROL_HANDLE.

Ну ОК, завтра у меня релиз, а на выходных попробую посмотреть повнимательнее, кто у меня брыкается. Как разберусь — уберу этих *Impl-ов.
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[7]: [ANN] myWTL
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 05.04.07 14:35
Оценка:
Здравствуйте, Splin, Вы писали:

S>Я имел ввиду список испавлений выложеный на сайте


S>

S>Исправления и дополнения:
S>[PRB] WinCE + CAppWindowBase::ActivatePreviousInstance()
S>[PRB] Ошибка в реализации функции SCALERECT из <DeviceResolutionAware.h>
S>[PRB] VS 2005 + WTL 7.5 + WinCE + CMenuT
S>[PRB] WTL 7.5 + WinCE + CString + no automatic namespaces
S>[PRB] WTL 7.5 + WinCE + _WTL_NO_AUTOMATIC_NAMESPACE


А ничего из этого так и не исправлено — брал свежее из CVS не далее как вчера.
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[3]: [ANN] myWTL
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 05.04.07 14:41
Оценка:
Здравствуйте, Splin, Вы писали:

S>Следующий претендент — DockingFramework от Сергея Климова.


К вопросу о — здесь, как я знаю, лежит не последняя версия. И моя просьба так и осталась безответной, равно как и эта, эта и
эта. Не поделитесь?
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[8]: [ANN] myWTL
От: Splin Беларусь  
Дата: 05.04.07 14:57
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

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


S>>Я имел ввиду список испавлений выложеный на сайте


S>>

S>>Исправления и дополнения:
S>>[PRB] WinCE + CAppWindowBase::ActivatePreviousInstance()
S>>[PRB] Ошибка в реализации функции SCALERECT из <DeviceResolutionAware.h>
S>>[PRB] VS 2005 + WTL 7.5 + WinCE + CMenuT
S>>[PRB] WTL 7.5 + WinCE + CString + no automatic namespaces
S>>[PRB] WTL 7.5 + WinCE + _WTL_NO_AUTOMATIC_NAMESPACE


SDB>А ничего из этого так и не исправлено — брал свежее из CVS не далее как вчера.


Не далече как позавчера поправили

[PRB] WTL 7.5 + WinCE + CString + no automatic namespaces

Вот что у меня на почте есть:

Update of /cvsroot/wtl/wtl/include
In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv3392

Modified Files:
atlwince.h
Log Message:
Fixed bug #1692796: undefined CString namespace

Index: atlwince.h
===================================================================
RCS file: /cvsroot/wtl/wtl/include/atlwince.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -d -r1.17 -r1.18
*** atlwince.h 15 Mar 2007 10:56:39 -0000 1.17
--- atlwince.h 3 Apr 2007 07:00:38 -0000 1.18
***************
*** 937,946 ****
#if defined(_WTL_USE_CSTRING) || defined(__ATLSTR_H__)
#if (_ATL_VER < 0x0800)
! LONG Save(CString& sval, ATL::_U_STRINGorID sName)
{
return m_Key.SetValue(sval, sName.m_lpstr);
}

! LONG Restore(CString& sval, ATL::_U_STRINGorID sName)
{
DWORD size = MAX_PATH;
--- 937,946 ----
#if defined(_WTL_USE_CSTRING) || defined(__ATLSTR_H__)
#if (_ATL_VER < 0x0800)
! LONG Save(_CSTRING_NS::CString& sval, ATL::_U_STRINGorID sName)
{
return m_Key.SetValue(sval, sName.m_lpstr);
}

! LONG Restore(_CSTRING_NS::CString& sval, ATL::_U_STRINGorID sName)
{
DWORD size = MAX_PATH;
***************
*** 950,959 ****
}
#else // !(_ATL_VER < 0x0800)
! LONG Save(CString& sval, ATL::_U_STRINGorID sName)
{
! return m_Key.SetStringValue(sName.m_lpstr, sval/*,REG_SZ*/);
}

! LONG Restore(CString& sval, ATL::_U_STRINGorID sName)
{
DWORD size = MAX_PATH;
--- 950,959 ----
}
#else // !(_ATL_VER < 0x0800)
! LONG Save(_CSTRING_NS::CString& sval, ATL::_U_STRINGorID sName)
{
! return m_Key.SetStringValue(sName.m_lpstr, sval);
}

! LONG Restore(_CSTRING_NS::CString& sval, ATL::_U_STRINGorID sName)
{
DWORD size = MAX_PATH;

Вы отслеживаете только корневые изменения файлов... Во вторник atlwince.h изменялся дважды. Подписка на изменение репозитория думаю решит эту проблему .
Последний баг тоже исправили, когда точно не помню — давно было...
Можно просто сравнить папки (Araxis Merge очень помогает ).
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[9]: [ANN] myWTL
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 05.04.07 15:05
Оценка:
Здравствуйте, Splin, Вы писали:

S>Не далече как позавчера поправили

[PRB] WTL 7.5 + WinCE + CString + no automatic namespaces


А ведь Вы чертовски правы! Сейчас сравнил WinMerge-ом — так и есть, этот дифференс отсутствует. Значит, сегодня вечерком поправлю сайт.

S>Вы отслеживаете только корневые изменения файлов...


М-м-м... это как?

S>Подписка на изменение репозитория думаю решит эту проблему .


Вот если бы мне еще сказали, как ее заполучить. Я как-то уже хотел, но с налета не нашел.

S>Последний баг тоже исправили, когда точно не помню — давно было...


И тут Ваша правда, посыпаю голову пеплом.
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[4]: [ANN] myWTL
От: Splin Беларусь  
Дата: 05.04.07 15:07
Оценка: 30 (1)
Здравствуйте, SchweinDeBurg, Вы писали:

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


S>>Следующий претендент — DockingFramework от Сергея Климова.


SDB>К вопросу о — здесь, как я знаю, лежит не последняя версия. И моя просьба так и осталась безответной, равно как и эта, эта и

SDB>эта. Не поделитесь?
Я тоже не мог найти последнюю версию пока не набрел на open source проект Programmer's Notepad. Там она лежит в SVN. Но там нет изменений сделанных Daniel Bowen-ом... Думаю надо мержить и проверять...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[10]: [ANN] myWTL
От: Splin Беларусь  
Дата: 05.04.07 15:17
Оценка: 30 (1)
Здравствуйте, SchweinDeBurg, Вы писали:

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


S>>Не далече как позавчера поправили

[PRB] WTL 7.5 + WinCE + CString + no automatic namespaces


SDB>А ведь Вы чертовски правы! Сейчас сравнил WinMerge-ом — так и есть, этот дифференс отсутствует. Значит, сегодня вечерком поправлю сайт.

WinMerge

S>>Вы отслеживаете только корневые изменения файлов...


SDB>М-м-м... это как?

Так... Файлы имеют номер версии.. Вы просто смотрите только последнюю версию файла — т.е. только последние изменения

S>>Подписка на изменение репозитория думаю решит эту проблему .


SDB>Вот если бы мне еще сказали, как ее заполучить. Я как-то уже хотел, но с налета не нашел.


1) логинимся на sourceforge.net
2) открываем проект http://sourceforge.net/projects/wtl
3) идем в Mailing Lists
4) идем в Subscribe/Unsubscribe/Preferences
5) заполняем Your email address и жмем Subscribe.
Кажись все

S>>Последний баг тоже исправили, когда точно не помню — давно было...


SDB>И тут Ваша правда, посыпаю голову пеплом.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[11]: [ANN] myWTL
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 05.04.07 15:26
Оценка:
Здравствуйте, Splin, Вы писали:

S>WinMerge


Переместимся в КСВ? Или останемся в рамках конструктива?

S>Так... Файлы имеют номер версии.. Вы просто смотрите только последнюю версию файла — т.е. только последние изменения


Дошло.

S>Кажись все


Сенькс, подписался.
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[5]: [ANN] myWTL
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 05.04.07 15:26
Оценка:
Здравствуйте, Splin, Вы писали:

S>Я тоже не мог найти последнюю версию пока не набрел на open source проект Programmer's Notepad. Там она лежит в SVN.


Спасибо, качну и добавлю.

S>Но там нет изменений сделанных Daniel Bowen-ом... Думаю надо мержить и проверять...


Упс... а когда это он их делал?
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[6]: [ANN] myWTL
От: Splin Беларусь  
Дата: 05.04.07 15:35
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

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


S>>Я тоже не мог найти последнюю версию пока не набрел на open source проект Programmer's Notepad. Там она лежит в SVN.


SDB>Спасибо, качну и добавлю.


S>>Но там нет изменений сделанных Daniel Bowen-ом... Думаю надо мержить и проверять...


SDB>Упс... а когда это он их делал?

Давно. Сравните то что идет с TabbingFramework и то что на codeproject от Климова. WinMerge все покажет (я за конструктив).
Я тоже хотел давно уже привести к общему знаменателю эту библиотеку — банально не доходят руки..
Возможно скоро сделаю. Для себя добавил новый класс — VC2005LikeCaption.h . Пока тестирую, как доделаю — поделюсь.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: [ANN] myWTL
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 05.04.07 16:00
Оценка:
Здравствуйте, Splin, Вы писали:

S>Давно. Сравните то что идет с TabbingFramework и то что на codeproject от Климова. WinMerge все покажет (я за конструктив).


Показало... правда, я очень бегло пробежался. А просто взять то, что я из SVN выкачал, нас не устраивает? Насколько я понял, там люди отновительно недавно что-то правили. Или Дэниэл привнес что-то важное, чего я за беглостью пока не разглядел?
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[8]: [ANN] myWTL
От: Splin Беларусь  
Дата: 05.04.07 16:16
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

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


S>>Давно. Сравните то что идет с TabbingFramework и то что на codeproject от Климова. WinMerge все покажет (я за конструктив).


SDB>Показало... правда, я очень бегло пробежался. А просто взять то, что я из SVN выкачал, нас не устраивает? Насколько я понял, там люди отновительно недавно что-то правили. Или Дэниэл привнес что-то важное, чего я за беглостью пока не разглядел?

Для начала достаточно взять из SVN. Потом будем посмотреть.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
[UPD] rev. 48
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 06.04.07 07:01
Оценка:
В проект добавлены PropertyGrid control от Bjarke Viksoe и WTL Docking windows (из SVN проекта Programmer's Notepad).

P.S.
PropertyGrid control был немного подточен напильником на предмет явного указания соответствующих пространств имен; плюс ячейки с чекбоксами, находящиеся в колонках "формата" LVCFMT_CENTER, отображаются по центру колонки (а не прижатыми влево, как в оригинале). Код опробован и вполне успешно используется в Spb Kiosk (на стороне десткопа).
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[9]: [ANN] myWTL
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 06.04.07 07:04
Оценка:
Здравствуйте, Splin, Вы писали:

S>Для начала достаточно взять из SVN. Потом будем посмотреть.


Done: [UPD] rev. 48
Автор: SchweinDeBurg
Дата: 06.04.07
.
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[10]: [ANN] myWTL
От: Splin Беларусь  
Дата: 06.04.07 07:34
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

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


S>>Для начала достаточно взять из SVN. Потом будем посмотреть.


SDB>Done: [UPD] rev. 48
Автор: SchweinDeBurg
Дата: 06.04.07
.

Было бы неплохо номер ревизии (билда) в название архива вынести чтобы не было путаницы и вести историю.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[11]: [ANN] myWTL
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 06.04.07 07:43
Оценка:
Здравствуйте, Splin, Вы писали:

S>Было бы неплохо номер ревизии (билда) в название архива вынести чтобы не было путаницы


Done.

S>и вести историю.


Имеется ввиду — на странице проекта?
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[12]: [ANN] myWTL
От: Splin Беларусь  
Дата: 06.04.07 08:35
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

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


S>>Было бы неплохо номер ревизии (билда) в название архива вынести чтобы не было путаницы


SDB>Done.


S>>и вести историю.


SDB>Имеется ввиду — на странице проекта?

Я про историю изменений ревизий (что добавили, удалили, исправили). На сайте выкладывать по желанию, но в архив было бы неплохо такой файл положить
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[13]: [ANN] myWTL
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 06.04.07 09:01
Оценка:
Здравствуйте, Splin, Вы писали:

S>Я про историю изменений ревизий (что добавили, удалили, исправили).


Это я понял.

S>На сайте выкладывать по желанию, но в архив было бы неплохо такой файл положить


ОК, на выходных попробую сделать.
[ posted via RSDN@Home 1.1.4 stable SR1 r568, accompanied by silence ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.