我正在尝试将一些Delphi XE代码移植到XE2,它使用一个名为InvRules.pas的单元,根据XE2文档,它没有名称空间前缀。
它也不在我期望的soap文件夹中:
C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\source\soap
最简单的答案是它已从XE2中删除(意外或故意)。
有没有人弄明白什么了?此单元包含GetStackTypeSize
和RetOnStack等函数,有时在自定义TRIOHelper
类型类中使用。
答案 0 :(得分:3)
soap运行时不再使用此单元,因此不再运输。在以前的版本中,它是soaprtl运行时包的一部分。对XE2版本的soap运行时进行了一些重大更改,以使代码可移植到x64,并且更少依赖于在RTTI支持单元中基本上重复的BASM代码。与提交状态关联的更改日志条目:
重构InvRules,使用RTTI获取类型大小。 从soap包中删除InvRules,PrivateHeap。
如果您的代码依赖于本单元中的帮助程序,则可以使用先前版本中的源代码。您可能还希望在XE和XE2之间区分Invoker.pas,InvokeRegistry.pas,OPToSOAPDomConv.pas和Rio.pas单位,以查看代码如何更改,因此它不再依赖于InvRules.pas单元。