2011-09-09 6 views
3

いくつかのDelphi XEコードをXE2に移植しようとしていますが、XE2ドキュメントによればInvRules.pasという名前のユニットが使用されています。InvRulesという名前のユニット(以前のSOAPフォルダ)はどこでDelphi XE2に入ったのですか?

それはまた、私はそれを期待石鹸フォルダにありません。

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

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

+2

XE2 Pro SKUに関連するドライブのどこにもインストールされていないことが確認できます。 (私はいくつかの以前のバージョンのDelphi用のコピーを持っています)。 –

+0

私は今、XEからコピーしています。 –

答えて

2

このユニットは、もはや石けんランタイムでは使用されていないので、もう出荷されていません。以前のリリースでは、これはsoaprtlランタイムパッケージの一部でした。 XE2リリースのsoapランタイムには、コードをx64に移植可能にし、RTTIサポートユニットに本質的に複製されたBASMコードに依存しないようにするためにいくつかの重要な変更が行われました。コミットに関連する変更ログエントリ:

RTXを使用してタイプサイズを取得します。 InvRules、PrivateHeapをSoapパッケージから削除します。

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

+0

ありがとうございました。ドキュメントチームにpingをして、InvRulesへの参照を削除し、「削除された古いRTLユニット」に関するwikiページを作成するように指示することもできます。 –

+0

ありがとうウォーレン私はそれを行います。どのソースファイルを配信すべきかを決定するプロセスを合理化しましたが、ドキュメントを同期させた状態(特にファイルの削除用)は主に手作業です。 –

関連する問題