Borland C++ 中的新 TXMLDocument 建设者

发布于 2024-07-09 07:48:08 字数 526 浏览 4 评论 0原文

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

另外,我想要这样做的唯一原因是 TXMLDocument 有点崩溃:我获取 TXMLDocument 并从中“获取”工作簿,设置一些文档属性(稍后将 xml 保存为 Excel 文件),然后我添加了一些样式。 好的,然后我添加一个工作表,然后添加我想要的具有正确格式的所有单元格,然后保存它。 此时一切都OK了。

然后我想保存另一个 Excel 文件。 由于 IDE 不允许我删除并重新创建 TXMLDocument,因此我尝试仅删除其中的工作表。 当我尝试此操作(在调试模式下)时,IDE 会进入 CPU 选项卡中的行步进模式(显示一些汇编程序):

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

Is it possible for me to create and destroy a TXMLDocument by myself in Borland C++ Builder? I've tried but borland keeps telling me that TXMLDocument is (and must be) an IDE managed component.

Also, the only reason that I want to do this is that TXMLDocument sort of crashes: I get the TXMLDocument and 'Gets' a workbook from it, sets some document properties (the xml is saved as an Excel-file later), and the I add some styles. Ok, then I add a worksheet and then all the cells that I want with proper formatting and then I save it. At this point everything is OK.

Then I want to save another Excel-file. Since the IDE doesn't let me delete and recreate the TXMLDocument I try to delete just the worksheet form it. When I try this (in debug mode) the IDE goes in to line step mode in the CPU tab (showing some assembler):

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

阳光①夏 2024-07-16 07:48:10

你需要做这样的事情:

_di_IXMLDocument Doc = NewXMLDocument(); 

我不记得为什么的血淋淋的细节,但这应该为你指明正确的方向。

有关更多信息,请访问 Codegear 网站此处

You need to do something like this instead:

_di_IXMLDocument Doc = NewXMLDocument(); 

I can't remember the gory details of why, but that should point you in the right direction.

There's more info on the Codegear website here.

彼岸花ソ最美的依靠 2024-07-16 07:48:10

尝试这个 :

#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 ))));
  }

Try this :

#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 ))));
  }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文