Новый TXMLDocument в Borland C++ Builder

Могу ли я самостоятельно создать и уничтожить TXMLDocument в Borland C++ Builder? Я пытался, но Borland постоянно говорит мне, что TXMLDocument является (и должен быть) управляемым компонентом IDE.

Кроме того, единственная причина, по которой я хочу это сделать, заключается в том, что TXMLDocument как бы аварийно завершает работу: я получаю TXMLDocument и "получаю" из него рабочую книгу, задаю некоторые свойства документа (XML-файл сохраняется как файл Excel позже), а Я добавляю несколько стилей. Хорошо, тогда я добавляю лист, а затем все нужные ячейки с правильным форматированием и затем сохраняю его. На данный момент все в порядке.

Затем я хочу сохранить другой Excel-файл. Поскольку среда IDE не позволяет мне удалять и воссоздавать TXMLDocument, я пытаюсь удалить только форму листа. Когда я пытаюсь это сделать (в режиме отладки), среда IDE переходит в режим шага строки на вкладке ЦП (показывает некоторый ассемблер):

ntdll.DbgBreakPoint:
77A07DFE CC               int 3
77A07DFF C3               ret

2 ответа

Решение

Вам нужно сделать что-то вроде этого:

_di_IXMLDocument Doc = NewXMLDocument(); 

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

Больше информации на сайте Codegear здесь.

Попробуй это:

#include <oxmldom.hpp>
#include <XMLDoc.hpp>
#include <xmldom.hpp>
#include <XMLIntf.hpp>


  try
  {
   CoInitialize(0);
   _di_IXMLDocument xmlDoc;
    xmlDoc = LoadXMLData( s1 );
   s1 = xmlDoc->XML->Text;
   CoUninitialize();
   mylog( Fun + String::Format( "ANSW-MSG-XML %s ", ARRAYOFCONST(( s1 ))));
  }
  catch ( Exception & ex )
  {
   mylog( Fun + String::Format( "PARSEXML:ERRORE %s \nmsg:%s",
      ARRAYOFCONST(( ex.Message, cmdMsg ))));
  }
Другие вопросы по тегам