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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: requested control could not be instantiated  (Прочитано 8603 раз)
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.023 секунд. Запросов: 18.