3

Delphi XEコードをXE2に移植しようとしていますが、InvRules.pasというユニットを使用しています。これは、XE2ドキュメントによると、名前空間プレフィックスがありません。

また、私が期待しているsoapフォルダーにもありません。

C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\source\soap

最も簡単な答えは、XE2から(偶然または故意に)削除されたということです。誰かが何が起きているのか理解しましたか?このユニットには、カスタムタイプクラスGetStackTypeSizeで時々使用されるRetOnStackなどの関数が含まれています。TRIOHelper

4

1 に答える 1

3

このユニットはsoapランタイムで使用されなくなったため、出荷されなくなりました。以前のリリースでは、soaprtlランタイムパッケージの一部でした。XE2リリースのsoapランタイムにいくつかの重要な変更が加えられ、コードがx64に移植可能になり、RTTIサポートユニットで本質的に複製されたBASMコードへの依存度が低くなりました。コミットに関連付けられた変更ログエントリは次のようになります。

InvRulesをリファクタリングし、RTTIを使用して型サイズを取得します。石鹸パッケージからInvRules、PrivateHeapを削除します。

このユニットのヘルパールーチンに依存するコードがある場合は、以前のリリースのソースを使用しても問題ありません。また、Invoker.pas、InvokeRegistry.pas、OPToSOAPDomConv.pas、Rio.pasの各ユニットをXEとXE2の間で比較して、コードがどのように変更されたかを確認し、InvRules.pasユニットに依存しないようにすることもできます。

于 2011-09-15T05:04:53.863 に答える