Как включить в ATL-проект файлы sldworks.tlb и swconst.tlb? Как сделать возможным обьявить переменную CComPtr<ISldWorks> swApp;
у меня этот код выдаёт ошибку:
error C2065: ISldWorks: необъявленный идентификатор
Это всё нужно делать ручками или можно с помощью мастера? Большое спасибо!
Здравствуйте, hztp_serg, Вы писали:
_>Есть описание, что нужно сделать чтобы вызвать некий COM-обьект: _>//Import the SolidWorks type library _>#import "sldworks.tlb" raw_interfaces_only, raw_native_types, no_namespace, named_guids _>//Import the SolidWorks constant type library _>#import "swconst.tlb" raw_interfaces_only, raw_native_types, no_namespace, named_guids
А сами tlb файлы у вас есть? #import ошибки не выдает?
_>у меня этот код выдаёт ошибку: _>error C2065: ISldWorks: необъявленный идентификатор
Если библиотеки импортированы, то найдите в папке Debug/Release сгенерированные .tlh/.tli файлы и посмотрите объявлен ли там ISldWorks.
Здравствуйте, algol, Вы писали:
A>Если библиотеки импортированы, то найдите в папке Debug/Release сгенерированные .tlh/.tli файлы и посмотрите объявлен ли там ISldWorks.
using namespace ATL;
using namespace SldWorks;
using namespace SWPublished;
using namespace SwConst;
Переменную добавил:
protected:
CComPtr<ISldWorks> iSwApp;
Это есть. Теперь надо загрузить COM-обьект, слышал что можно через CoCreateInstance или через плагин. Оба варианта для меня пока секрет, может подскажите какой вариант лучше выбрать и как его реализовать?
Большое спасибо!
_>Теперь надо загрузить COM-обьект, слышал что можно через CoCreateInstance или через плагин. Оба варианта для меня пока секрет, может подскажите какой вариант лучше выбрать и как его реализовать? _>Большое спасибо!
А этот код тебе чем не нравится?
//Create an instance of SolidWorks
HRESULT hres = swApp.CoCreateInstance(__uuidof(SldWorks), NULL, CLSCTX_LOCAL_SERVER);