Новый 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 ))));
}