質問

私が作成し、ボーランドC ++ Builderで自分でにTXMLDocumentを破壊するために、

それは可能ですか?私が試したが、ボーランドは、IDEがコンポーネントを管理するにTXMLDocumentがある(とでなければならない)ことを私に言って続けています。

また、私はこれをしたい唯一の理由は、クラッシュのようにTXMLDocumentの一種である:私はにTXMLDocumentを取得し、それからワークブック「を取得します」(XMLは、後のExcelファイルとして保存されます)いくつかのドキュメントプロパティを設定します、と私はいくつかのスタイルを追加します。 [OK]を、私はワークシートを追加して、私がしたいすべてのセル適切な形式で、その後、私はそれを保存します。この時点で、すべてがOKです。

そして、私は別のExcelファイルを保存します。 IDEは私がにTXMLDocumentを削除して再作成することはできませんので、私はちょうどワークシートは、それを形成し、削除してみてください。私はIDEは、CPUタブでラインステップモードになります(デバッグモードで)これをしようとすると(いくつかのアセンブラを示す):

ntdll.DbgBreakPoint:
77A07DFE CC               int 3
77A07DFF C3               ret
役に立ちましたか?

解決

あなたが代わりにこのような何かをする必要があります:

_di_IXMLDocument Doc = NewXMLDocument(); 

私がなぜの血みどろの詳細は覚えていないことができますが、それは正しい方向にあなたを指している必要があります。

のCodeGearのWebサイトにあります詳細はここを。

他のヒント

これを試してください:

#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