Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как побороть этт эррор?

7.5K
03 февраля 2005 года
Caesarus
9 / / 29.10.2004
Эррор:
----
error C2555: 'Cieobj::SetSite' : overriding virtual function differs from 'ATL::IObjectWithSiteImpl<class Cieobj>::SetSite' only by return type or calling convention
-----
Возникает в проекте ATL при переопределении ф-ции HRESULT SetSite(IUnknown *pUnkSite);

Вот описалово класса
--
class ATL_NO_VTABLE Cieobj :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<Cieobj, &CLSID_ieobj>,
public IObjectWithSiteImpl<Cieobj>,
public IDispatchImpl<Iieobj, &IID_Iieobj, &LIBID_BHOTEST1Lib>
{
public:
Cieobj()
{

}


DECLARE_REGISTRY_RESOURCEID(IDR_IEOBJ)

DECLARE_PROTECT_FINAL_CONSTRUCT()

BEGIN_COM_MAP(Cieobj)
COM_INTERFACE_ENTRY(Iieobj)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(IObjectWithSite)
END_COM_MAP()

// Iieobj
public:
CComQIPtr<IWebBrowser2, &IID_IWebBrowser2> m_spWebBrowser2;
CComQIPtr<IConnectionPointContainer, &IID_IConnectionPointContainer> m_spCPC;

HRESULT SetSite(IUnknown *pUnkSite);
};
----

Не могу переопределить ф-цию SetSite()! В чем дело. Помогите плз.
1.8K
03 февраля 2005 года
_const_
229 / / 26.11.2003
Цитата:
Originally posted by Caesarus
Эррор:
----
error C2555: 'Cieobj::SetSite' : overriding virtual function differs from 'ATL::IObjectWithSiteImpl<class Cieobj>::SetSite' only by return type or calling convention
-----
Возникает в проекте ATL при переопределении ф-ции HRESULT SetSite(IUnknown *pUnkSite);

Вот описалово класса
--
class ATL_NO_VTABLE Cieobj :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<Cieobj, &CLSID_ieobj>,
public IObjectWithSiteImpl<Cieobj>,
public IDispatchImpl<Iieobj, &IID_Iieobj, &LIBID_BHOTEST1Lib>
{
public:
Cieobj()
{

}


DECLARE_REGISTRY_RESOURCEID(IDR_IEOBJ)

DECLARE_PROTECT_FINAL_CONSTRUCT()

BEGIN_COM_MAP(Cieobj)
COM_INTERFACE_ENTRY(Iieobj)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(IObjectWithSite)
END_COM_MAP()

// Iieobj
public:
CComQIPtr<IWebBrowser2, &IID_IWebBrowser2> m_spWebBrowser2;
CComQIPtr<IConnectionPointContainer, &IID_IConnectionPointContainer> m_spCPC;

HRESULT SetSite(IUnknown *pUnkSite);
};
----

Не могу переопределить ф-цию SetSite()! В чем дело. Помогите плз.



Вместо
HRESULT SetSite(IUnknown *pUnkSite);

попробуй
STDMETHOD SetSite(IUnknown *pUnkSite);

7.5K
03 февраля 2005 года
Caesarus
9 / / 29.10.2004
Цитата:
Originally posted by _const_


Вместо
HRESULT SetSite(IUnknown *pUnkSite);

попробуй
STDMETHOD SetSite(IUnknown *pUnkSite);



РАзобрался. Надо так:

HRESULT __stdcall SetSite(IUnknown *pUnkSite);

Всем сенкс. Тема закрыта.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог