powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Проблема инициализации COM-сервера под Delphi
4 сообщений из 4, страница 1 из 1
Проблема инициализации COM-сервера под Delphi
    #32251025
vlad451
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создается несколько Thread'ов, в одном из тредов создается
Excel := TExcelApplication.Create...
Далее в Excel происходит добавление листа в рабочую книгу
(
var
Book: Variant;
Sheet: Variant;
.
.
.
Sheet := Book.Sheets.Add; //Book связан с текущей рабочей книгой Excel

), и именно в этом месте возникает ошибка: (EOleSysError)
The application called an interface that was marshalled for different thread.
В чем причина? Как победить эту ошибку при использовании нескольких нитей?

P.S. При создании всех тредов используется CoInitializeEx( nil, COINIT_MULTITHREADED). Если обойтись без вызова CoInitializeEx, то возникает ошибка: CoInitialize was not been called.
ОС: Windows 2000 Server, Delphi 6.0.
...
Рейтинг: 0 / 0
Проблема инициализации COM-сервера под Delphi
    #32251156
Freestyler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема не в инициализации COM сервера.
Все же описано в сообщение об ошибке:
попытка вызова метода из другого потока.
На мой пьяный взгляд два выхода:
1) создавать обьяект TExcelApplication в этом же потоке тогда можешь спокойно вызывать все методы;
2) Делать маршалинг обьекта в этот поток и потом тогда его юзать.
Вот так
Пойду хлопну
...
Рейтинг: 0 / 0
Проблема инициализации COM-сервера под Delphi
    #32251329
vlad451
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первый способ не помогает, а насчет второго, если можно, поподробней: как именно можно выполнить маршалинг объекта
...
Рейтинг: 0 / 0
Проблема инициализации COM-сервера под Delphi
    #32251431
Freestyler
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как это не помагает. Все должно работать.
Ты как делаешь. Нужно плностью создавать ExcelApplication, открывать книгу и дальше ее использовать. Если делаешь именно так то какая ошибка.
Отвечаю с запозданием (у нас в концерне праздник.....)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Проблема инициализации COM-сервера под Delphi
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]