最近我们将代码从Delphi 2009升级到Delphi XE并更新了我们的Indy组件(不确定这是否相关)。
但从那时起,我们在加载和保存XML文件时在Windows Server 2003计算机上出现了错误。
XMLDoc.LoadFromFile()
XMLDoc.SaveToFile()
在Windows Server 2003(300kb左右)上,DLL msvcrt.dll要小得多,而在其他操作系统上则超过600kb ......所以它丢失了该文件中的内容并导致错误......
有谁知道如何解决这个问题?或者我可以尝试替代TXMLDocument
吗?
答案 0 :(得分:3)
默认情况下,TXMLDocument
/ IXMLDocument
只是在Windows平台上运行时MSXML COM接口的包装器。 TXMLDocument
和Indy都不使用_ftol2_sse()
函数,甚至链接到msvcrt.dll。你项目中的其他东西都有问题。
答案 1 :(得分:1)
msvcrt.dll是Microsoft Visual C ++运行时(的一部分)。我认为你有一个较旧(或甚至更新)的运行时版本,不包括这个功能。
现在你必须找出这个函数的调用位置。您是否将obj文件与项目链接或使用(其他)第三方dll?
答案 2 :(得分:1)
要回答最后一部分(“还有替代方案吗?”),您可能需要查看Jedi代码库的TJclSimpleXML
类。它不需要任何外部DLL,速度非常快,而且非常易于使用。此外,如果你用Delphi编写代码,这些天JCL和JVCL都是必备的。
http://wiki.delphi-jedi.org/wiki/JEDI_Code_Library是他们的页面。我在西雅图听到你可以通过IDE集成包管理器获得它。