Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.30;
Скачать: CL | DM;

Вниз

Как заставить работать COM в потоке?   Найти похожие ветки 

 
Alex_C ©   (2006-03-21 16:07) [0]

Просто в приложении работает отлично
При попытке обращения к серверу из потока выдает: "Не был произведен вызов CoInitialise"
В факах нашел что надо поставить первой строчкой
CoInitFlags := 0;
Application.Initialize;
Сделал. Не работает все равно.


 
Reindeer Moss Eater ©   (2006-03-21 16:07) [1]

>"Не был произведен вызов CoInitialise"
Дык произведи


 
MBo ©   (2006-03-21 16:09) [2]

Ну раз "Не был произведен вызов CoInitialise"
то напрашиваетсф вывод - вызвать эту функцию CoInitialize(nil)


 
Alex_C ©   (2006-03-21 16:17) [3]

Прошу прощения за тупой вопрос: в каком месте? При создании программы я произвожу ComServ := CoComServ.Create - тут все ок!
А где производить вызов этой ф-ции??


 
Reindeer Moss Eater ©   (2006-03-21 16:18) [4]

В потоке естественно.


 
Alex_C ©   (2006-03-21 17:09) [5]

Нашел в инете по этому поводу статью
Сделал так:
в методе Execute;
begin
 CoInitializeEx(NIL, COINIT_MULTITHREADED);
 …
 CoUninitialize
Теперь вылазиет другая ошибка
Приложение обратилось к интерфейсу, относящемуся к другому потоку

Инициализирую интерфейс в теле основной программы. Его там тоже надо использовать. Как быть?


 
Reindeer Moss Eater ©   (2006-03-21 17:11) [6]

Ты русский или марсианин?
Тебе русским языком компьютер сказал, что не произведен вызов CoInitialise

Произведи вызов CoInitialise


 
Alex_C ©   (2006-03-21 17:20) [7]

Я ж написал - вставил я CoInitialise в поток!


 
Reindeer Moss Eater ©   (2006-03-21 17:21) [8]

Читай внимательно чего ты туда написал и что тебе сказал компьютер написать туда.


 
Alex_C ©   (2006-03-21 17:26) [9]

Ок! Признаю я - Марсианин!
Только объясните в чем проблема!
Вставил так:
В Execute:
 CoInitialize(nil);
 Далее свою ф-цию. работы с COM

Пишет
" Приложение обратилось к интерфейсу, относящемуся к другому потоку"


 
Reindeer Moss Eater ©   (2006-03-21 17:28) [10]

Чего, не можешь перевести с русского на русский?
:)
Боюсь что переводчиков с таким дипломом здесь нет.


 
clickmaker ©   (2006-03-21 17:33) [11]


> Alex_C ©   (21.03.06 17:26) [9]

IGlobalInterfaceTable спасет марсианина )
http://www.compdoc.ru/prog/cpp/com/ch5/ch54.shtml



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

Текущий архив: 2006.04.30;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.026 c
2-1144932563
dera
2006-04-13 16:49
2006.04.30
Как решить проблему?


2-1144857660
эксперт
2006-04-12 20:01
2006.04.30
посылка файла


2-1144770126
ViktorZ
2006-04-11 19:42
2006.04.30
сложить два столбца...


10-1117617459
diwww
2005-06-01 13:17
2006.04.30
Как сохранить экселевский файл?


2-1144836480
elfebet
2006-04-12 14:08
2006.04.30
Как запихнуть ярлык в Quick Lauch?