Question

Est-il possible pour moi de créer et de détruire un document TXML par moi-même dans Borland C ++ Builder? J'ai essayé mais Borland n'arrête pas de me dire que TXMLDocument est (et doit être) un composant géré par IDE.

De plus, la seule raison pour laquelle je souhaite faire cela est que TXMLDocument se bloque: je reçois le TXMLDocument et "Gets" un classeur à partir de celui-ci, définit certaines propriétés du document (le xml est ensuite enregistré en tant que fichier Excel) et j'ajoute quelques styles. Ok, alors j’ajoute une feuille de calcul, puis toutes les cellules que je veux avec un formatage correct, puis je l’enregistre. À ce stade, tout va bien.

Ensuite, je veux enregistrer un autre fichier Excel. Puisque l'EDI ne me permet pas de supprimer et de recréer le TXMLDocument, j'essaie de supprimer uniquement la feuille de calcul qui le forme. Quand j'essaye ceci (en mode débogage), l'IDE passe en mode ligne pas à pas dans l'onglet CPU (montrant un assembleur):

ntdll.DbgBreakPoint:
77A07DFE CC               int 3
77A07DFF C3               ret
Était-ce utile?

La solution

Vous devez faire quelque chose comme ceci à la place:

_di_IXMLDocument Doc = NewXMLDocument(); 

Je ne me souviens pas des détails sanglants de la raison, mais cela devrait vous orienter dans la bonne direction.

Le site Web de Codegear contient plus d'informations, ici .

Autres conseils

Essayez ceci:

#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 ))));
  }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top