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

Ваш аккаунт

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

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

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

ATL: I*Ptr и 'I*' undeclared identifier

501
26 июня 2006 года
hell_admin
110 / / 02.10.2004
Доброго времени суток, решил вот подучить ATL и взял книжку
Inside ATL от Microsoft Press, там самый первый пример это создание Совета дня ( Tip of the day) так вот я сделал все пошагов однако возникли следующие вопросы

1. У меня есть интерфейс ITipOfTheDay в COM обьекте, но в приложении обьявлена переменная типа ITipOfTheDayPtr этот тип нигде не обьявлен, я искал с помощью Искать в файлах (Find in files...) в обоих проектах, но нигде не нашел :) однако все компилирутеся и работает, может этот тип автоматически создается, вообщем неясность нигде я не нашел обяснения.
Так же есть такие типы для IUnknown (IUnknownPtr) и др.

2. До этого приложение не компилировалось со след ошибками
 
Код:
error C2065: 'IAsyncSetup' : undeclared identifier
error C2065: 'IClassRefresh' : undeclared identifier
error C2065: 'IEnumClass' : undeclared identifier
error C2065: 'IXMLElementNotificationSink' : undeclared identifier

Эти сообщение появлялись как только я делал

#import "mytip.tlb"

Я покапался и нашел что некоторые обьявлены в comdef.h и objidl.h включил эти заголовки однако не помогло, тоглда просто сделал так:
 
Код:
#define IClassRefresh IUnknown
#define IEnumClass IUnknown
#define IAsyncSetup IUnknown
#define IXMLElementNotificationSink IUnknown

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