1

Borland C++ Builder で自分で TXMLDocument を作成および破棄することはできますか? 試してみましたが、TXMLDocument は IDE 管理コンポーネントである (そしてそうでなければならない) と borland が言い続けます。

また、これを実行したい唯一の理由は、TXMLDocument がクラッシュすることです。TXMLDocument を取得し、そこからワークブックを「取得」し、いくつかのドキュメント プロパティを設定します (xml は後で Excel ファイルとして保存されます)。いくつかのスタイルを追加します。次に、ワークシートを追加し、必要なすべてのセルを適切な書式で追加して保存します。この時点で、すべて問題ありません。

次に、別の Excel ファイルを保存します。IDE では TXMLDocument を削除して再作成できないため、ワークシートからワークシートだけを削除しようとしました。これを (デバッグ モードで) 試すと、IDE は [CPU] タブで行ステップ モードに入ります (アセンブラーを表示します)。

ntdll.DbgBreakPoint:
77A07DFE CC               int 3
77A07DFF C3               ret
4

2 に答える 2

2

代わりに、次のようにする必要があります。

_di_IXMLDocument Doc = NewXMLDocument(); 

理由の悲惨な詳細を思い出せませんが、それは正しい方向を示しているはずです。

Codegear の Web サイトの詳細については、こちらを参照してください。

于 2008-12-08T15:26:55.543 に答える
0

これを試して :

#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 ))));
  }
于 2009-09-15T14:07:03.447 に答える