crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Проблемы при работе в потоке.
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Mr.Woland Дата 27.7.2011, 21:53
  Есть поток, в функции run которого используется функционал disphelper'а.
Данный функционал реализует запрос к WMI с целью мониторинга системных событий:
    try
    {
        const wchar_t*  Query=(const wchar_t *)this->TriggerRequest.utf16();
        dhCheck( dhGetObject(L"winmgmts:{impersonationLevel=impersonate,(Security)}!\\\\.\\root\\cimv2",NULL, &wmiSvc) );
        dhCheck( dhGetValue(L"%o", &wmiEventSrc, wmiSvc, L".ExecNotificationQuery(%S)",Query) );
        emit this->TriggerState(this->TriggerName,1);
        while (TRUE)
        {
            CDispPtr wmiLatestEvent;
            dhCheck( dhGetValue(L"%o", &wmiLatestEvent, wmiEventSrc, L".NextEvent") );
            emit this->Triggered(this->TriggerName,this->GenerateTriggerMsg(wmiLatestEvent),this->TriggerIcon);
            wmiLatestEvent.Dispose();
        }
    }
    catch (string errstr)
    {
        ErrorMSG=this->GenerateErrorMSG(QString::fromStdString(errstr));
        emit this->TriggerState(this->TriggerName,-1);
    }

проблема в следующем.
на строчке
dhCheck( dhGetObject(L"winmgmts:{impersonationLevel=impersonate,(Security)}!\\\\.\\root\\cimv2",NULL, &wmiSvc) );

происходит сбой с сообщением:
Цитата
Member:
Function: GetObject
Error In: GetObjectEx
Error: Neioaene?aneay ioeaea
Code: 800401e4
Source: Application"

Но ещё раньше программа вываливалась с сообщением о Runtime error'е.
А ещё раньше (и сейчас) в другом приложении данный код (в паре десятков потоков) работает прекрассно и без нареканий.
В чем проблема ?
Переменные среды, настройки про файлов (за исключением списка файлов) идентичны для рабочего и нерабочего приложения.
ЗЫ.
Помогите плиз.
2 дня сношусь....
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 4.7.2025, 22:56