Frage

Ist es möglich für mich, eine TXMLDocument von mir in Borland C ++ Builder zu erstellen und zu zerstören? Ich habe versucht, aber borland sagt mir, dass TXMLDocument ist (und muss) ein IDE verwaltete Komponente.

Auch der einzige Grund, warum ich dies tun wollen ist, dass TXMLDocument Art von Abstürzen: Ich erhalte die TXMLDocument und gets eine Arbeitsmappe von ihm setzt einige Dokumenteigenschaften (die XML ist als Excel-Datei gespeichert später) und ich einige Stile hinzufügen. Ok, dann füge ich ein Arbeitsblatt und dann alle Zellen, die ich mit der richtigen Formatierung wollen und dann speichere ich. An diesem Punkt ist alles in Ordnung.

Dann möchte ich eine andere Excel-Datei speichern. Da die IDE mir die TXMLDocument ich es nur das Arbeitsblatt zu löschen versuchen, löschen und neu erstellen nicht nachlässt bilden. Wenn ich versuche, diese (im Debug-Modus) die IDE geht in Linie Schritt-Modus in der Registerkarte CPU (einige Assembler zeigt):

ntdll.DbgBreakPoint:
77A07DFE CC               int 3
77A07DFF C3               ret
War es hilfreich?

Lösung

Sie müssen stattdessen so etwas tun:

_di_IXMLDocument Doc = NewXMLDocument(); 

Ich kann die blutigen Details, warum, denken Sie daran, aber das sollten Sie in die richtige Richtung zeigen.

Es gibt weitere Informationen auf der Website hier .

Andere Tipps

Versuchen Sie folgendes:

#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 ))));
  }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top