Russian Qt Forum
Май 17, 2024, 02:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: requested control could not be instantiated  (Прочитано 8186 раз)
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;
}
все норм.
в чем причина не пойму...
« Последнее редактирование: Август 17, 2010, 19:38 от Sahab » Записан
niXman
Гость
« Ответ #1 : Август 17, 2010, 19:45 »

Цитировать
компилер выдает:
QAxBase::setControl: requested control {56a868a9-0ad4-11ce-b03a-0020af0ba770} could not be instantiated
компилятор? Шокированный
а откуда компилятор может знать что это такое: "{56a868a9-0ad4-11ce-b03a-0020af0ba770}" ? для него это просто строка.
или это какая-то вендовская замутка?

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

и все равно не понимаю чем компилятор не доволен... Непонимающий
« Последнее редактирование: Август 17, 2010, 19:48 от niXman » Записан
Sahab
Гость
« Ответ #2 : Август 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}");
офф. дока

это не совсем "просто строка"
Записан
Sahab
Гость
« Ответ #3 : Август 17, 2010, 20:02 »

кстате GUID взят из strmif.h
Записан
niXman
Гость
« Ответ #4 : Август 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 ?
Записан
Sahab
Гость
« Ответ #5 : Август 17, 2010, 20:20 »

runtime
Записан
niXman
Гость
« Ответ #6 : Август 17, 2010, 20:22 »

runtime
а это как понимать?:
Цитата: Sahab
компилер выдает
Записан
Sahab
Гость
« Ответ #7 : Август 17, 2010, 20:24 »

это критично?
мне изменить начало темы ... встать на колени и молить о прощении?
Записан
niXman
Гость
« Ответ #8 : Август 17, 2010, 20:28 »

это критично?
мне изменить начало темы ... встать на колени и молить о прощении?
не нужно истерик. я просто хотел понять..
Записан
Sahab
Гость
« Ответ #9 : Август 18, 2010, 09:49 »

что с COM никто не работал?)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 20.