Re[3]: Дополню
От: SkySandy  
Дата: 04.07.04 07:30
Оценка:
Здравствуйте, 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?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.