MFC & WTL
От: Ахет  
Дата: 23.06.03 17:09
Оценка:
при совмещении двух проектов под наткнулся на ошибку во время компиляции

c:\program files\microsoft visual studio\vc98\wtl\include\atlsplit.h(702) : error C2039: 'SelectBrush' : is not a member of 'CWindowDC'
c:\program files\microsoft visual studio\vc98\wtl\include\atlgdi.h(2661) : see declaration of 'CWindowDC'
c:\program files\microsoft visual studio\vc98\wtl\include\atlsplit.h(692) : while compiling class-template member function 'void __thiscall WTL::CSplitterImpl<class WTL::CSplitterWindowT<0>,0>::DrawGhostBar(void)'

результатом исследования оказалось что компилятор не верно определяет базовый класс для CWindowDC, он подставляет глобальный объект вместо шаблона определенного в этом хедере.

решение нашел только одно использовать девайн, у кого нибудь будут другие предложения?

#define CDC CDCImpl
#define _WTL_NO_AUTOMATIC_NAMESPACE
#define _ATL_APARTMENT_THREADED
#include <atlbase.h>
#include <atlapp.h>
extern WTL::CAppModule _Module;
#include <atlcom.h>
#include <atlwin.h>
#include <atlframe.h>
#include <atlgdi.h>
#include <AtlSplit.h>
#undef CDC


версия cl — 12.00.8804, От 6 ms — студии.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.