Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ wxWidgets _ wxAutomationObject и wxThread

Автор: 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.
В чём может быть проблема?

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)