новый TXMLDocument в Borland C ++ Builder
-
20-08-2019 - |
Вопрос
Могу ли я самостоятельно создать и уничтожить 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 ))));
}