При замене IConnectionPointImpl на IConnectionPointImplMT компилятор выдает ошибки
error C2352: 'ATL::CComDynamicUnkArray::GetUnknown' : illegal call of non-static member function
error C2352: 'ATL::CComDynamicUnkArray::GetCookie' : illegal call of non-static member function
Все делаю по инструкции Microsoft
Q280512.
У меня VS.NET 2003 & WindowsXP
Помогите разобраться.
Здравствуйте, Kirill.CP, Вы писали:
KC>При замене IConnectionPointImpl на IConnectionPointImplMT компилятор выдает ошибки
KC>error C2352: 'ATL::CComDynamicUnkArray::GetUnknown' : illegal call of non-static member function
KC>error C2352: 'ATL::CComDynamicUnkArray::GetCookie' : illegal call of non-static member function
KC>
KC>Все делаю по инструкции Microsoft Q280512.
KC>У меня VS.NET 2003 & WindowsXP
KC>Помогите разобраться.
у меня было нечто похожее — исправлял руками прямо в коде атл, в форуме где то были мои мессаги на эту тему.
если скажешь имя файла и номер строки — могу сказать более конкретно
Ошибки генерят вот эти строки из ATLCPImpl.h
pend->dwCookie = _CDV::GetCookie(reinterpret_cast<IUnknown **>(pDWCookie));
DWORD dwGITCookie = (DWORD)_CDV::GetUnknown(dwCookie);
Если отбросит все typedef то _CDV это CComDynamicUnkArray. Неужели в Майкрософте не знали, что вызов нестатических методов приведет к ошибке? Или я что-то пропустил в жизни
Здравствуйте, Kirill.CP, Вы писали:
KC>Ошибки генерят вот эти строки из ATLCPImpl.h
KC>pend->>dwCookie = _CDV::GetCookie(reinterpret_cast<IUnknown **>(pDWCookie));
KC>DWORD dwGITCookie = (DWORD)_CDV::GetUnknown(dwCookie);
KC>
KC>Если отбросит все typedef то _CDV это CComDynamicUnkArray. Неужели в Майкрософте не знали, что вызов нестатических методов приведет к ошибке? Или я что-то пропустил в жизни
в каком каталоге этот файл — -я его найти не могу
Здравствуйте, Kirill.CP, Вы писали:
KC>Ошибки генерят вот эти строки из ATLCPImpl.h
KC>pend->>dwCookie = _CDV::GetCookie(reinterpret_cast<IUnknown **>(pDWCookie));
KC>DWORD dwGITCookie = (DWORD)_CDV::GetUnknown(dwCookie);
KC>
KC>Если отбросит все typedef то _CDV это CComDynamicUnkArray. Неужели в Майкрософте не знали, что вызов нестатических методов приведет к ошибке? Или я что-то пропустил в жизни
Нашёл. Там файл надо подключать не ATLCPImpl.h
а ATLCPImplMT.h
!
Здравствуйте, Kirill.CP, Вы писали:
KC>Да все правильно ATLCPImplMT.h
KC>В этом файле ошибки и происходят.
//<Nick> 17.07.2004
// DWORD dwGITCookie = (DWORD)_CDV::GetUnknown(dwCookie);
DWORD dwGITCookie = reinterpret_cast<DWORD>(m_vec.GetUnknown(dwCookie));
.......
//<Nick 17.07.2004>
// pend->dwCookie = _CDV::GetCookie(reinterpret_cast<IUnknown **>(pDWCookie));
pend->dwCookie = m_vec.GetCookie(reinterpret_cast<IUnknown **>(pDWCookie));
Здравствуйте, shrek, Вы писали:
S>Здравствуйте, Kirill.CP, Вы писали:
KC>>Да все правильно ATLCPImplMT.h
KC>>В этом файле ошибки и происходят.
S>
S>//<Nick> 17.07.2004
S>// DWORD dwGITCookie = (DWORD)_CDV::GetUnknown(dwCookie);
S> DWORD dwGITCookie = reinterpret_cast<DWORD>(m_vec.GetUnknown(dwCookie));
S>.......
S>//<Nick 17.07.2004>
S>// pend->dwCookie = _CDV::GetCookie(reinterpret_cast<IUnknown **>(pDWCookie));
pend->>dwCookie = m_vec.GetCookie(reinterpret_cast<IUnknown **>(pDWCookie));
S>
Спасибо. Так собралось.
Однако все же за Microsoft обидно