Вопрос

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

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

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

ntdll.DbgBreakPoint:
77A07DFE CC               int 3
77A07DFF C3               ret
Это было полезно?

Решение

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

_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 ))));
  }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top