![]() |
|
|
![]()
|
|
| korotkov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 17.6.2006 Репутация: нет Всего: нет |
Вопрос по TXMLDocument
Использую Borland C++Builer 6.0 + VirtualTreeView ... Перевожу пример из http://quadr0.pochta.ru/VirtualTreeview/vi...reeview_pdf.zip ( http://forum.vingrad.ru/topic-97620/unread...view/index.html ) сохранения дерева VirtuaTreeView в XML файл.
Компилится, но программа вылетает по EAccessViolation при попытке получения XMLDocument->DocumentElement В design режиме, если положить компонент на форму TXMLDocument, то все Ок, а в runtime беда Что я делаю не так? |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
в конструктор строку передавать нельзя (не тот конструктор вызовется)
и DOMVendor установить не помешалобы:
так же неплохо бы проверить когда AV кидается (при вызове "XMLDocument->DocumentElement" или при работе SaveXML()) -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| korotkov |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 17.6.2006 Репутация: нет Всего: нет |
еслиб все так было просто ;)
В примере на Delphi конструктор действительно вызывается с параметром self, а далее удаляется ... На C++Buildere 6 конструктор объявлен как TXMLDocument(const DOMString AFileName); и на TXMLDocument* xmlDocument = new TXMLDocument(Application); соответственно ругается > xmlDocument->DOMVendor = GetDOMVendor("MSXML"); наверное это установлено поумолчанию в конструкторе!? но добавил ... теперь и на ней вылетает!!! >так же неплохо бы проверить когда AV кидается (при вызове "XMLDocument->DocumentElement" или при работе SaveXML()) вылетает именно на DocumentElement, проверил, точнее даже на ...
в модуле systobj.h Все это незаладилось с перевода куска кода не Delphi, там конструктор TXMLDocument вызывается с параметром self, а в Builder конструктор просит строку имя!!!
Вот такие пироги! Повторюсь, это все не работает если создавать как написано выше в runtime, а если кинуть на форму XMLDocument, то все Ок! |
||||
|
|||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
их там два... еще тут: http://groups.google.com/group/borland.pub...c60bdd5a7fae56/ почитай... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| korotkov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 17.6.2006 Репутация: нет Всего: нет |
>их там два...
а подробнее можно ... компилятор ругается если я в качестве параметра ставлю this или Application, говорит нет такого: Could not find a match for TXMLDocument::TXMLDocument(...) я так понимаю отсюда и ноги растут!;) >почитай... Разве что это: >XmlDoc=new TXMLDocument(TName); Do not do that. TXMLDocument does not work properly when instantiated dynamically. Use the IXMLDocument interface directly, ie: _di_IXMLDocument XmlDoc; но на чем это утверждение основывается, проверю ... Вопрос свелся к ... : как в runtime создать XML документ и сохранить его на диск, с применением TXMLDocument Это сообщение отредактировал(а) korotkov - 6.11.2006, 18:39 |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Ну так есть такая проблем с TXMLDocument.
А кто мешает использовать _di_IXMLDocument? -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| korotkov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 17.6.2006 Репутация: нет Всего: нет |
>Ну так есть такая проблем с TXMLDocument.
так в чем проблема заключается, где об этом ... >А кто мешает использовать _di_IXMLDocument? да, вместо: TXMLDocument *XMLDocument = new TXMLDocument(""); пишу: _di_IXMLDocument XMLDocument = NewXMLDocument(); работает! Но я уже бросил компоненту на форму и ... ;) Так в чем суть разница, накручено как-то с этим вопросом! На каком варианте остановиться? |
|||
|
||||
| Vyacheslav |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Если есть возможнность добавить компонент в дизайне, то используй TXMLDocument, если - нет, то di_IXMLDocument.
Во всяком случае я другого решения в свое время не смог найти -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
| korotkov |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 39 Регистрация: 17.6.2006 Репутация: нет Всего: нет |
>Если есть возможнность добавить ...
а более глубоко не копал? Исходники и прочее ... в чем суть разница?! |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |