Здравствуйте, SchweinDeBurg, Вы писали:
SDB>Здравствуйте, Andir, Вы писали:
A>>PSDK
SDB>Там есть "бесплатная" версия ATL — в папке Win64, кажется.
Спасибо за ответ, но получается следующее:
Установил: Platform SDK, последнюю версию.
Файл atlbase.h в ней существует в 2-х каталогах:
(1). Microsoft SDK\src\mfc\atlbase.h датирован 15.08.2001
(2). Microsoft SDK\include\Win64\atl\ atlbase.h датирован 21.08.2002
Если компилировать с (1) файлом, то возникает ошибки
atlbase.h(834) : error C2065: 'T' : undeclared identifier
atlbase.h(834) : error C2955: 'ATL::_NoAddRefReleaseOnCComPtr' : use of class template requires template argument list atlbase.h(486) : see declaration of 'ATL::_NoAddRefReleaseOnCComPtr'
Заглянув в 834 строку видим: NoAddRefReleaseOnCComPtr<T>* operator->() const
А в 486 строке:
template <class T>
class _NoAddRefReleaseOnCComPtr : public T
{
private:
STDMETHOD_(ULONG, AddRef)()=0;
STDMETHOD_(ULONG, Release)()=0;
};
Если компилировать с (2) файлом (то есть с последней по дате версией из каталога Win64), то компиляция проходит без ошибок, но в момент link ругается что не находит:
.obj : error LNK2019: unresolved external symbol __imp__DeleteDC@4 referenced i
function "public: __thiscall WTL::CDCT<1>::~CDCT<1>(void)" (??1?$CDCT@$00@WTL@
QAE@XZ)
Как я понимаю, дело уже в самой библиотеке WTL в файле atlgdi.h в строках, где описывается класс: CDCT
Что можно придумать, как все-таки откомпилировать WTL с помощью: Visual C++ Toolkit 2003?