QAxObject * perfmon = new QAxObject("{C4D2D8E0-D1DD-11CE-940F-008029004347}");
perfmon->setProperty("ManualUpdate", true);
QAxObject *counters = perfmon->querySubObject("Counters");
if (!counters->isNull())
counters->dynamicCall("Add(\"\\Процесс(*)\\% загруженности процессора\")");
проблеммы с ActiveX
Вопрос адресован прежде всего тем, кто хорошо владеет ActiveX
Использую библиотеку Qt для работы с ActiveX (класс QAxObject) сталкиваюсь со следующей проблеммой: при получении внутреннего объекта и вызове его метода возникает ошибка:
QAxBase::dynamicCallHelper: Object does not support automation
(выводится в аутпут визуал студии)
Я сначала думал это проблемма Qt, но народ говорит что я неправильно использую ActiveX. Может кто подскажет с чем связана данная ошибка?
Вот код:
Код:
ошибка возникает при вызове
counters->dynamicCall("Add(\"\\Процесс(*)\\% загруженности процессора\")");
а вообще {C4D2D8E0-D1DD-11CE-940F-008029004347} - это стандартный performance monitor в винде.
В примерах видел что вызовы производятся не через DynamicCall а также через querySubObject(), хотя для меня эта тема совсем нова
вообще dynamicCall() служит для вызова методов ActiveX объекта. он возвращает QVariant который не может быть использован как QAtObject. Хотя я пробовал использовать его для получения коллекции - возникает access violation...
Судя по ошибке объект не поддерживает IDispatch