1

Anders Melander の DragDrop パッケージを使用しています。
Win32 モードでは問題なく動作しますが、64 ビットでは調整が必要です。
これを行う{$IFNDEF CPUX64}には、designIDE への参照をコメント アウトします。

ただし、パッケージソースをから変更すると

requires
  rtl,
  DesignIDE;

requires
  rtl
  {$IFNDEF CPUX64} ,DesignIDE{$ENDIF};

コンパイラは、パッケージ ソースの DesignIDE 行を単純に破棄し、次のものだけを残します。

requires
  rtl;

これは X64 では問題なく動作しますが、32 ビット用に再構築するとすぐに壊れます。

win32 のデザインタイム アイテムを含む 1 つのパッケージを、X64 用に IFDEF アウトされた競合するアイテムと一緒にする方法はありますか? または、X64 用に別のランタイム パッケージを作成する必要がありますか?

4

1 に答える 1

4

いいえ、プロジェクトのメイン ファイルで条件を使用することはできません。IDE はそれを所有および制御し、条件付きで行ったカスタマイズを破棄 (さらには破棄) する可能性があります。このために 2 番目のパッケージを作成する必要がありますが、これはDesignIDEとにかく使用するための通常の方法です。64 ビットをサポートするためでなかったとしてDesignIDEも、アプリケーションをデプロイすることは許可されていません。法的な理由から、IDE はデザインタイム パッケージにのみ存在する必要があります。

Delphi IDE は 32 ビットのみであるため、デザインタイム パッケージはWin32のみである必要があることにも注意してください。次に、Run-Time パッケージは、使用している可能性のあるフレームワークでサポートされている限り、サポートされている任意のプラットフォーム (つまり、Win64) にすることができます。

于 2015-09-13T16:03:56.103 に答える