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

Вниз

CoInitialize has not been called в TXSLPageProducer.content   Найти похожие ветки 

 
flesh   (2003-09-18 11:06) [0]

При вызове TXSLPageProducer.content возникает ошибка "CoInitialize has not been called". Причем возникает она только когда cвойство "XML" в TXSLPageProducer и TXMLDocument задаются в процессе работы программы. Причем пример с XSL трансформацией, поставляемый с Delphi, тоже выдает ту же ошибку.
В чем может быть решение данной проблемы?


 
Юрий Федоров   (2003-09-18 11:11) [1]

Видимо в вызове CoInitialize :)))


 
Erik   (2003-09-18 11:12) [2]

А ты случеем не в потоке работаеш? Если в потоке тогда вызови CoInitialize а в конце CoUnInitialize


 
flesh   (2003-09-18 11:39) [3]

CoInitialize это чей метод-то?
Если не трудно, пример приведите плиз... А то у меня уже крыша едет..


 
flesh   (2003-09-18 12:06) [4]

Работаю не в потоке. Это методы потока?
Просто есть маза, что все это глюк Delphi.
Компоненты созданы НЕ в реал тайме, какая еще инициализация нужна?
Подскажите плиз


 
Anatoly Podgoretsky   (2003-09-18 12:11) [5]

flesh © (18.09.03 12:06) [4]
Есть другое мнение, что Дельфи тут ни причем.
А то что ты все таки не приозвел вызов CoInitialize


 
Sandman25   (2003-09-18 12:11) [6]

uses ActiveX;
...
CoInitialize(nil);
...// работа
CoUninitialize;


 
flesh   (2003-09-18 12:16) [7]

Sandman25, т.е. мне нужно включить в проект юнит ActiveX?
Это такая фича? Просто ActiveX-ами у меня в проекте и не пахнет вроде...
Если я страшно туплю, то пожалуйста, объясните где именно..


 
Sandman25   (2003-09-18 12:20) [8]

Тогда Uses Ole2.


 
Sandman25   (2003-09-18 12:22) [9]

В крайнем случае можно попытаться выдрать описания этих функций и вставить в свою программу. Правда, тогда наюо будет еще разбираться с initialization/finalization модуля.


 
Юрий Федоров   (2003-09-18 12:24) [10]

Если у тебя есть формы, то ActiveX уже прикомпилирован :-)
Даже если есть uses Classes...
Так что не бойся, добавляй


 
flesh   (2003-09-18 12:31) [11]

И что, мне включать в проект Ole2 и писать:

CoInitialize(nil);
...// код
CoUninitialize;

?

Главный Вопрос, который интересует меня больше всего:
Что именно я инициализирую этим методом (CoInitialize())?
Ведь у меня в проекте по сути только два компонента (не считая компонентов базы данных) TXSLPageProducer и TXMLDocument?

Я же ничего не использую из Ole2?


 
Юрий Федоров   (2003-09-18 12:33) [12]

Если ты работешь с COM, то перед началом работы ты должен его инициализировать(для каждого потока), этим как раз и занимается функция CoInitialize (или CoInitializeEx)
Подробности по F1


 
Sandman25   (2003-09-18 12:35) [13]

[11] flesh © (18.09.03 12:31)

Да.
А Вы думаете я знаю, что оно делает и зачем это надо?
Просто иначе не будет работать, вот и приходится писать :(


 
flesh   (2003-09-18 12:49) [14]

To: Юрий Федоров, Sandman25

У меня в этом проекте не используется COM/DCOM, и вообще говоря, я никогда и нигде раньше не юзал CoInitialize и все работало.
Потоков здесь тоже нет.

В общем, я запутался.

выдержка из Classes:
_____________________________
unit Classes;

{$R-,T-,X+,H+}

{ ACTIVEX.HPP is not required by CLASSES.HPP }
(*$NOINCLUDE ActiveX*) <<<< это интересно

interface

uses SysUtils, Windows, ActiveX;
_____________________________

Так что, если в пустом проекте (а там есть Forms, Classes) написать CoInitialise(),
то получаем "Undeclared Identifier: CoInitialise()"


 
Юрий Федоров   (2003-09-18 12:52) [15]

>>У меня в этом проекте не используется COM/DCOM
Ты же говоришь, что TXMLDocument используется...

>>то получаем "Undeclared Identifier: CoInitialise()

Это обычная функция, правила такие же, как и везде -
чтобы ее использовать, нужно в этом модуле прописать в uses тот
модуль, где она объявлена, в данном случае ActiveX


 
Sandman25   (2003-09-18 12:53) [16]

flesh

Вам выдало сообщение с предельно ясным диагнозом - надо вызвать CoInitialize.
Что касается, второго вопроса. Да, uses classes компонует и activex, но в Implementation, то есть так, что Вы к нему доступа из главной программы не имеете. Чему тут удивляться? Транзитивность на uses не распространяется.


 
Erik   (2003-09-18 13:04) [17]

Хотя всетаки странно, ведь главный поток по умолчания инитиализирован. И по этому для создания com объекта ненадо делать CoInitialize в главном потоке. Возможно в нутри компонента создается поток и там нету CoInitialize. Тогда при обявлении в главном CoInitialize инчего неизменится, станет только хуже.


 
flesh   (2003-09-18 13:17) [18]

To: Erik

Поэтому мне и кажется, что это бага компонента...
В дистрибутиве, где-то в Demos есть пример работы XSLPageProducer (не помну как именно называется проект), но он так же выдает ту же ошибку!



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

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

Наверх





Память: 0.48 MB
Время: 0.01 c
1-96201
Relaxxx
2003-09-15 12:04
2003.09.29
TreeView


8-96308
avk
2003-06-03 20:26
2003.09.29
все те же стрелочки... на Canvas


7-96460
Jackky
2003-07-17 12:18
2003.09.29
Модемные команды


9-96044
ilix
2003-03-20 18:30
2003.09.29
оптимальноe решениe игры 15


6-96329
acsoft
2003-07-30 07:20
2003.09.29
Cookie





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