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

Вниз

Ошибка при обращении к DCOM обьекту   Найти похожие ветки 

 
Maxim Pshevlotsky   (2003-05-24 12:44) [0]

Здравствуйте Мастера! Возникает ошибка при обращении к DCOM обьекту(точнее к удаленному модулю данных).
Делаю все вроде как по инструкции:

var Vrem, DCOMData: IDComData;
begin
Vrem:=CoDComdata.Create;
Vrem.QueryInterface(IDcomData,DComData);
<...>

Ошибку пишет такую:
... raised exception class EOleSysError with message "Не был произведен вызов CoInitialize" ...

В чем проблема?


 
Юрий Федоров   (2003-05-24 13:06) [1]

Если делаешь это в инициализации - то такая проблема была


 
Maxim Pshevlotsky   (2003-05-24 13:07) [2]

Юрий Федоров © (24.05.03 13:06)
Это я делаю при обращении к DLL


 
sniknik   (2003-05-24 13:23) [3]

на ошибку "Не был произведен вызов CoInitialize" ... достойный ответ произвести этот вызов! :о)
так
CoInitialize(nil) (а после "разынициализировать")


 
Maxim Pshevlotsky   (2003-05-24 13:37) [4]

sniknik © (24.05.03 13:23)
Пардон, а как его вызвать та, и вообще ну хто это такой?(глупый вопрос знаю ;))


 
sniknik   (2003-05-24 13:45) [5]

uses ActiveX;

begin
CoInitialize(nil);
....{код}....
CoUnInitialize();
end.

+ встаеш курсором на CoInitialize и нажимаеш Ctrl+F1.


 
Юрий Федоров   (2003-05-24 13:49) [6]

>>sniknik © (24.05.03 13:45)
Самое странное то, что это не всегда помогает :-)


 
sniknik   (2003-05-24 14:07) [7]

это помогает всегда если ставить до вызова обьектов COM, если умудрится поставить позже то конечно.


 
Maxim Pshevlotsky   (2003-05-24 14:11) [8]

Все работает ОК!, только при вызове CoUnInitialize() возникает OLE ошибка. Я её не вызываю и все вроде в порядке.
Странно... :|


 
sniknik   (2003-05-24 14:35) [9]

они у тебя гдето пересекается. должны быть строго парные
CoInitialize
CoUnInitialize();
а так дельфи тоже производит вызов то ... гдето путаница.
кстати если так(используеш модуль где идет вызов - ComObj) то возможно тебе не нужно вызывать его самому, просто передвинуть свой код
Vrem:=CoDComdata.Create;
Vrem.QueryInterface(IDcomData,DComData);
подальше, после вызова initialization из ComObj.




 
VaS   (2003-05-24 15:09) [10]

CoInitialize() создает апартамент COM. Должна вызываться в каждой нити, в которой планируется осуществлять вызовы методов COM-объектов. Если же в данной нити создается СОМ-объект, методы которого будут вызываться из других апартаментов (кроме модели free), то также необходимо организовать цикл выборки сообщений windows. Для главной нити CoInitialize() вызывается автоматически при подключении модуля ComObj.


 
Maxim Pshevlotsky   (2003-05-24 16:04) [11]

Все заработало, меня только смущает медлительность инициализации всего этого. Процессор у меня мощный, а "рожается" долго :(


 
Maxim Pshevlotsky   (2003-05-24 16:19) [12]

sniknik © (24.05.03 14:35)
Кстати Да действительно, если тестируешь без дельфи то никаких ошибок не происходит.



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

Форум: "Основная";
Текущий архив: 2003.06.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
1-13230
MegaVolt
2003-05-26 13:23
2003.06.05
Где в коде ошибка?


14-13391
Bokus
2003-05-16 01:06
2003.06.05
Как и гле получить права на свою программу


1-13281
undom
2003-05-24 09:14
2003.06.05
формы


1-13117
Beregin
2003-05-24 19:23
2003.06.05
TFileStream?


4-13518
nomad
2003-04-08 10:56
2003.06.05
savedialog





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский