Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];

Вниз

CreateThread   Найти похожие ветки 

 
alvin   (2003-01-01 16:33) [0]

Уважаемые Мастера. Имеется процедура, создающая достаточно большой отчет в Wordе. Поскольку это занимает много времени, хотелось бы запустить ее в отдельном потоке. При попытке запуска потока с помощью CreateThread, выдается сообщение об ошибке "raised exception class EOleSysError with message
"Не был произведен вызов CoInitialize"".
Работаю с Word через word_tlb под Delphi4.


 
Alex Konshin   (2003-01-01 18:15) [1]

Еще раз: используйте BeginThread/EndThread.
Это, правда, не ответ на вопрос, а лишь замечание.

Цитата из MSDN:
CoInitialize
Initializes the COM library on the current thread and identifies the concurrency model as single-thread apartment (STA). Applications must initialize the COM library before they can call COM library functions other than CoGetMalloc and memory allocation functions.

Честно говоря, не знаю, есть ли у Delphi отдельный мозг для инициализации OLE в других нитях, пусть лучше ответят те, кто с этим сталкивался.


 
alvin   (2003-01-02 13:43) [2]

Подключил ActiveX, дописал CoInitialize(nil) и все воркает (не знаю правда, насколько это корректно).
Спасибо, буду чаще заглядывать в HELP


 
asmith   (2003-01-02 18:55) [3]

> Честно говоря, не знаю, есть ли у Delphi отдельный мозг для инициализации OLE в других нитях, пусть лучше ответят те, кто с этим сталкивался.
Нет, Delphi этого не делает. Поэтому для каждого создаваемого потока нужно явно вызвать CoInitialize, а по его завершению - соответственно CoUninitialize.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.009 c
7-38592
SPIRIT
2002-12-11 01:45
2003.02.13
Дополнительные кнопки на клавиатуре


1-38281
Dinn
2003-02-05 16:50
2003.02.13
линии с шириной >1 разными стилями


14-38540
Filat
2003-01-25 17:47
2003.02.13
Ещё раз о внешнем виде программы как Win XP?


1-38258
Peter Obuhov
2003-02-05 14:56
2003.02.13
нужно рисовать на заголовке окна


3-38110
radix
2003-01-28 08:58
2003.02.13
Как легко и просто создать хранимую процедуру из программы ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский