![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Написал такую функцию.Но результат - Ошибка Com Class не зарегистрирован.Что я делаю не так?
Код:
|
#2
|
||||||
|
||||||
![]() И в чем проблема?
Код:
Если тебе нужен именно IUnknown, то попроси его у IXMLDocument: Код:
ЗЫ. Кстати, такой объект удалять не надо, он сам самоудалится как только выйдет из области видимости - это ж Com объект. ЗЗЫ. Кстати, IXMLDocument, походу, не является OLE Automation интерфейсом, так что "засунуть" его в OleVariant не получится. Если надо возвращать какой-то общий тип, то возвращай IUnknown: Код:
Последний раз редактировалось lmikle, 28.05.2023 в 07:09. |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
infopol (06.06.2023)
|
#3
|
|||
|
|||
![]() А как передать
XmlObj.DomVendor:= GetDOMVendor('OPEN XML') ? Дело в том,что в com DLL которую я делаю выдается ошибка! |
#4
|
|||
|
|||
![]() Тут 2 проблемы.
1. DOMVendor есть только у TXMLDocument, у IXMLDocument его нет. Соответственно, надо сначала создать TXMLDocument, установить у него свойство, потом получить из него IXMLDocument и уже дальше работать с ним. 2. Ошибка может возникать т.к. такого вендора может не быть. Вот тут есть список стандартных вендоров: https://docwiki.embarcadero.com/RADS...t_Object_Model Так же можно посмотреть какие вендоры зарегистрированны в этой переменной: https://docwiki.embarcadero.com/Libr...dom.DOMVendors Ну и там есть ссылка на документацию на RegisterDOMVendor - если тебе надо зарегистрировать какогото своего вендора. |
#5
|
|||
|
|||
![]() Код:
|
#6
|
|||
|
|||
![]() Поменяй тип переменной на IXMLDocument
|
#7
|
|||
|
|||
![]() Не помогло
|
#8
|
||||
|
||||
![]() Код:
Делаю COM DLL ,в ней функция Код:
ip2:=CreateOleObject('Ip2Com_events.Ip2Com'); oxml:=ip2.F_IXML_OBJECT(ExtractFilePath(ParamStr(0 )) + '/health.xml') ; выдается ошибка на сервере. Возможно ли использовать этот объект в COM DLL? Последний раз редактировалось infopol, 29.06.2023 в 09:19. |
#9
|
||||
|
||||
![]() при вызове
Код:
Код:
|
#10
|
|||
|
|||
![]() Какая ошибка, на какой строке?
И вообще, нафига такие сложности для чтения xml? |
#11
|
|||
|
|||
![]() пишет Ошибка сервера.
А сложности,для использования объекта OXML в бухпрограмме "Инфо-Предприятие". Кое-что хочу сделать в обход MSXML Последний раз редактировалось infopol, 30.06.2023 в 13:17. |
#12
|
|||
|
|||
![]() А у тебя твой объкт точно реализует OLE интерфейс?
И зачем тебе OLE? Из приведенного кода этого не видно. Попробуй просто импортировать в тестовое приложение твой компонент и создать его через CoClass. |
#13
|
|||
|
|||
![]() Вот часть кода COMDLL
Код:
|
#14
|
|||
|
|||
![]() А библиотеку типа покажи тоже.
|
#15
|
|||
|
|||
![]() Не работает.
|