crossplatform.ru

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


  Ответ в wxAutomationObject и wxThread
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

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


Последние 10 сообщений [ в обратном порядке ]
Iron Bug Дата 15.6.2010, 14:22
  Наблюдаю странное поведение при создании OLE объекта в wxWidgets.
(Компилю в msvc 8.0, wxWidgets 2.8.10, с 2.8.11 тоже проверила - та же беда)

Пытаюсь открыть Excel, чтобы туда свалить данные. Код такой:

    wxAutomationObject *pexcelObject = new wxAutomationObject();
    bool res = pexcelObject->CreateInstance(_T("Excel.Application"));


Когда запускаю это в основном потоке (в методе формы, унаследованной от wxFrame) - res равен true и всё пучком.
Далее, захотелось вынести этот кусок в параллельный поток (используя wxThread) и вот тут поджидала засада: тот же кусок в параллельном потоке просто напрочь отказывается работать: res всегда равен false.
Даже при попытке передачи указателя на объект между потоками он "теряет свои магические свойства" - то есть, на попытки вызова методов в дочернем потоке возвращает false и нули, а из основного потока всё без проблем.
Внутри метода CreateInstance в обоих случаях вызывается CoCreateInstance, причём с совершенно одинаковыми параметрами. В одном случае он возвращает true, в другом - false.
В чём может быть проблема?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 12:56