Re[2]: Использование #import вместо #include
От: Михаил Челноков Украина  
Дата: 12.09.02 08:11
Оценка:
Здравствуйте Vi2, Вы писали:

Vi2>Здравствуйте Михаил Челноков, Вы писали:


МЧ>>Например, я пишу:

Vi2>
МЧ>>__interface IMyInterface: IDispatch {
МЧ>>[propget, id(1), helpstring("property x")] HRESULT x([out, retval] INT* pX);
МЧ>>[propput, id(1), helpstring("property x")] HRESULT x([in] INT newX);
МЧ>>};
Vi2>


МЧ>>Это всё чУдно компилируется, генерится IDL, из него TLB, и потом я могу писать нечто типа

МЧ>>IMyInterfacePtr p;
МЧ>>...p->x=0;

МЧ>>Однако, такое я могу писать только в другом проекте. Т.е. в том, при компиляции которого TLB уже есть и импортирован. В том же проекте, при компиляции которого этот TLB в конце концов генерируется, компилятор выдает ошибку — нет такого поля в этом классе.


МЧ>>Что делать?


Vi2>Если у тебя файл x.idl, то Wizard добавляет в #include несколько файлов, связанных с твоим x.idl. Это файлы x.h и x_i.c.


Увы. У меня как раз не x.idl, а x.h, из которого компилятор генерирует _x.idl (с помощью упомянутых атрибутов) и _x.h.
В том-то все и дело — получается что idl и tlb генерируемые и мне нечему делать #import на этапе компиляции этого же проекта. Я хочу как-то заставить компилятор понять, что x — это свойство.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.