1

我可以在 Borland C++ Builder 中自己创建和销毁 TXMLDocument 吗?我已经尝试过,但 borland 一直告诉我 TXMLDocument 是(并且必须是)IDE 托管组件。

此外,我想这样做的唯一原因是 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 网站上有更多信息

于 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 回答