-
Везде написано про automation а интересует именно com. Кд примерно такой: IUnknown *q; IChartObject *c;
CoCreateInstance(CLSID_ExcelChart,NULL, CLSCTX_LOCAL_SERVER, IID_IUnknown, (void**)&q); q->QueryInterface(IID_IChartObject, (void**)&c); c->get_Name(&w);// set_Visible(1);
компилится но не линкуется с ошибкой:
[Linker Error] Unresolved external '__stdcall Excel_2k::IChartObject::get_Name(wchar_t * *)' referenced from C:\UNIT1.OBJ
чего ей не хватает ?
-
> чего ей не хватает ? >
ей не хватает импортированной библиотеки типов.
-
Ага !
здесь начинается самое интересное ... при попытке вручную импортировать библиотеку из excel.exe билдер говорит, что такие классы уже установлены ... Я так понимаю имеются ввиду те компоненты, которые на вкладке Office лежат ... и пытаюсь их использовать:
#include "Excel_2K_SRVR.h" #pragma link "Excel_2K_SRVR"
Как вообще правильно действовать если есть .ocx файл и желание его использовать ? Каков общий, не билдеровский подход ?
-
в делфи в мастере импорта библиотек типов есть 2 кнопки - "Install" и "Create Unit". Если жать на первую, то среда пытается установить компоненты, если вторую - создает модуль и открывает его в редакторе. Подключаем этот модуль к проекту - и все работает.
-
а вообще, похоже, что нет метода get_Name(wchar_t * *)
-
> а вообще, похоже, что нет метода get_Name(wchar_t * *)
докладываю, я его не сам выдумал, а вытащил из autocompletion :) значит в заголовочных файлах он есть имхо.
Что касается мастера импорта, то есть серьезное подозрение, что через него можно воспользоваться только тем, что именуется automation object. А хочется настоящего COM.
Где бы почитать про это ?
|