RICHEDIT50W и CRichEditCtrl и VC++2013
От: PPA Россия http://flylinkdc.blogspot.com/
Дата: 04.12.14 04:00
Оценка:
Привет
class ChatCtrl: public CWindowImpl<ChatCtrl, CRichEditCtrl> ...


При его создании
        const auto l_res = ctrlClient.Create(m_MessagePanelHWnd, m_MessagePanelRECT, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN |
                                             WS_VSCROLL | ES_AUTOVSCROLL | ES_MULTILINE | ES_NOHIDESEL | ES_READONLY, WS_EX_STATICEDGE, IDC_CLIENT);
        if (!l_res)
        {
            dcdebug("Error create BaseChatFrame::createChatCtrl %s", Util::translateError().c_str());
            dcassert(0);
        }
        else
        {
            ctrlClient.LimitText(0);
            ctrlClient.SetFont(Fonts::g_font);


После перехода на VC++2013 c 2010
стало в отладке падать вот такая ошибка:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include\atlwin.h(5275) : atlTraceWindowing — ERROR : Could not obtain Window Class information for RICHEDIT50W
Error create BaseChatFrame::createChatCtrl [error: 1411]Assertion hit in windows\BaseChatFrame.cpp(61): 0

в WTl вот такой код

                // Try global class
                if(!T::GetClassInfoEx(NULL, p->m_lpszOrigName, &wc))
                {
                    // try process local
                    if(!T::GetClassInfoEx(pBaseModule->m_hInst, p->m_lpszOrigName, &wc))
                    {
                        ATLTRACE(atlTraceWindowing, 0, _T("ERROR : Could not obtain Window Class information for %s\n"), p->m_lpszOrigName);
                        return 0;
                    }
                }



при этом в релизе все работает и окно создается
не могу что сломалось.
платформу выставил Visual Studio 2013 — Windows XP (v120_xp)
нужно чтобы приложение работало под Win XP
CRichEditCtrl
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.