Наследование интерфейса и IUnknown, определения методов IDispatch

Мне нужно наследовать интерфейс с абстрактными методами, в VB/ C# мы просто переопределяем методы из нашего интерфейса, в то время как нет необходимости кодировать методы IUnknown или IDispatch

но в C++, после наследования интерфейса в классе и переопределения методов в интерфейсе, когда я пытался создать экземпляр производного класса, я получаю следующую ошибку

error C2259: 'Imyinterface' : cannot instantiate abstract class
1>          due to following members:



'HRESULT IUnknown::QueryInterface(const IID &,void **)' : is abstract
'ULONG IUnknown::AddRef(void)' : is abstract
 'ULONG IUnknown::Release(void)' : is abstract 

поэтому мне нужно переопределить / определить методы IUnknown и IDispatch, например, addref,Release,QueryInterface,invoke,gettypeinfo

поскольку они кажутся стандартными функциями, где я могу получить их код / ​​определения egATL или любую библиотеку типов? или любые ссылки, где я могу получить код / ​​примеры вышеуказанных методов

2 ответа

QueryInterface: Если интерфейс, идентифицируемый переданным GUID, может быть достигнут, поместите указатель на интерфейс в void ** параметр; еще установить void ** в NULL, Верните соответствующий HRESULT,

AddRef: Увеличить счетчик ссылок интерфейса.

Release: Уменьшить счетчик ссылок интерфейса.

Я хотел бы предложить получить хорошую книгу по COM, прежде чем углубляться в это. Используемые копии Inside Com (Microsoft Programming Series) Дейла Роджерсона дешевы. У него есть примеры. Прочитайте обзоры на Amazon, чтобы узнать, хотите ли вы купить эту книгу или нет.

Вам необходимо переопределить эти методы и предоставить их определения (в вашем производном классе) и для всех функций, объявленных чисто виртуальными в вашем базовом классе.
Если вы этого не сделаете, ваш производный класс также будет действовать как абстрактный класс, и вы не сможете создавать его объекты.

Что касается второго вопроса, нет, я не имею ни малейшего представления о том, что должны делать стандартные реализации этих методов.

Другие вопросы по тегам