Главная страница
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.045 c
2-1144565312
Galiaf
2006-04-09 10:48
2006.04.30
Ещё раз про настройки экрана...


2-1144849458
sanich
2006-04-12 17:44
2006.04.30
Автоматически добавляются пробелы в поле


5-1130411808
VadimMX
2005-10-27 15:16
2006.04.30
Редакторы компонентов


3-1141649889
ZZZ111
2006-03-06 15:58
2006.04.30
Конвертор Excel - DBase


15-1144322510
Vlad Oshin
2006-04-06 15:21
2006.04.30
Правописание3.5 килограмма или 3.5 килограммов?