Russian Qt Forum

Qt => ActiveX => Тема начата: Sahab от Август 17, 2010, 19:35



Название: requested control could not be instantiated
Отправлено: Sahab от Август 17, 2010, 19:35
QtCreator (MinGW[GCC.4.6.0])
Код:
QAxObject *pGraphBuilder = new QAxObject(this);
pGraphBuilder->setControl("{56a868a9-0ad4-11ce-b03a-0020af0ba770}");
if(pGraphBuilder->isNull()) {
qFatal("Can't create pGraphBuilder");
return false;
}

компилер выдает:
QAxBase::setControl: requested control {56a868a9-0ad4-11ce-b03a-0020af0ba770} could not be instantiated

на винапи (VS2008):
Код:
// Create the Filter Graph Manager.
HRESULT hr =  CoCreateInstance(CLSID_FilterGraph, NULL,
CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&pGraphBuilder);

if (FAILED(hr)) {
return false;
}
все норм.
в чем причина не пойму...


Название: Re: requested control could not be instantiated
Отправлено: niXman от Август 17, 2010, 19:45
Цитировать
компилер выдает:
QAxBase::setControl: requested control {56a868a9-0ad4-11ce-b03a-0020af0ba770} could not be instantiated
компилятор? :o
а откуда компилятор может знать что это такое: "{56a868a9-0ad4-11ce-b03a-0020af0ba770}" ? для него это просто строка.
или это какая-то вендовская замутка?

кстати в гугле полно упоминаний этой последовательности: http://www.google.com.ua/search?sourceid=chrome&ie=UTF-8&q=%22{56a868a9-0ad4-11ce-b03a-0020af0ba770}%22

и все равно не понимаю чем компилятор не доволен... ???


Название: Re: requested control could not be instantiated
Отправлено: Sahab от Август 17, 2010, 20:00
Цитировать
control : QString
This property holds the name of the COM object wrapped by this QAxBase object.

Setting this property initializes the COM object. Any COM object previously set is shut down.

The most efficient way to set this property is by using the registered component's UUID, e.g.

 ctrl->setControl("{8E27C92B-1264-101C-8A2F-040224009C02}");
офф. дока

это не совсем "просто строка"


Название: Re: requested control could not be instantiated
Отправлено: Sahab от Август 17, 2010, 20:02
кстате GUID взят из strmif.h


Название: Re: requested control could not be instantiated
Отправлено: niXman от Август 17, 2010, 20:12
Цитировать
control : QString
This property holds the name of the COM object wrapped by this QAxBase object.

Setting this property initializes the COM object. Any COM object previously set is shut down.

The most efficient way to set this property is by using the registered component's UUID, e.g.

 ctrl->setControl("{8E27C92B-1264-101C-8A2F-040224009C02}");
офф. дока

это не совсем "просто строка"

т.е. вы хотите сказать, что это "ctrl->setControl("{8E27C92B-1264-101C-8A2F-040224009C02}")" выполняется в compile_time ?


Название: Re: requested control could not be instantiated
Отправлено: Sahab от Август 17, 2010, 20:20
runtime


Название: Re: requested control could not be instantiated
Отправлено: niXman от Август 17, 2010, 20:22
runtime
а это как понимать?:
Цитата: Sahab
компилер выдает


Название: Re: requested control could not be instantiated
Отправлено: Sahab от Август 17, 2010, 20:24
это критично?
мне изменить начало темы ... встать на колени и молить о прощении?


Название: Re: requested control could not be instantiated
Отправлено: niXman от Август 17, 2010, 20:28
это критично?
мне изменить начало темы ... встать на колени и молить о прощении?
не нужно истерик. я просто хотел понять..


Название: Re: requested control could not be instantiated
Отправлено: Sahab от Август 18, 2010, 09:49
что с COM никто не работал?)