XE2 については、唯一壊れる可能性のある新機能は 64 ビットです。
しかし、COM の観点からは、COM オブジェクトが 32 ビットまたは 64 ビットのコードで実装または呼び出されることが重要な場合があります。
COM オブジェクト タイプは、レジストリ キーを介して登録されます。これは regasm.exe ユーティリティが行うことです (レジストリへの書き込み)。32 ビット ビットのレジストリ ノードであり、64 ビットのレジストリ ノードとは明らかに異なります。
たとえば、COM オブジェクトが 32 ビットとしてコンパイルされている場合、32 ビット レジストリまたは 64 ビット レジストリに (reagasm
呼び出しを介して)登録されます。
ただし、32 ビットの Delphi アプリケーションを使い続ける場合は、COM ラッパーを 32 ビットとしてエクスポートするように指定しても、追加の問題は発生しません。つまり、32 ビット プロセスを作成する場合、XE2 は Delphi の以前のバージョンとまったく同じように動作します。
詳細については、 http://www.gfi.com/blog/32bit-object-64bit-environmentを参照してください。
もう 1 つの解決策は、COM オブジェクトをプロセス外で実行することです。この場合、ビット数は問題にならず、32 ビットまたは 64 ビットに関する問題は発生しません。
XE2 には非常に厄介なバグがあったことに注意してください。要するに、場合によっては COM アクセスが壊れていました。最新の「Update pack 2」で問題が解決したようです。
もちろん、Delphi XE2 のクロスプラットフォーム機能を使用する場合、COM オブジェクトは Mac OS X では使用できません。;)