64ビット版のDelphiがリリースされると(2012年のことですか?)、コンポーネントはどのように機能しますか?Delphi 64bit:コンポーネントの互換性?
私はいくつかの第三者コンポーネントを使用しています:つまり、自動的に64ビットで動作するかどうかですか?彼らはコンポーネントの2つの別バージョンをリリースする必要がありますか?
64ビット版のDelphiがリリースされると(2012年のことですか?)、コンポーネントはどのように機能しますか?Delphi 64bit:コンポーネントの互換性?
私はいくつかの第三者コンポーネントを使用しています:つまり、自動的に64ビットで動作するかどうかですか?彼らはコンポーネントの2つの別バージョンをリリースする必要がありますか?
先を見ているベンダーは、64ビットFreePascalでコード(可能な限り)をテストし始めています。一般的に、あなたの質問に対する答えは、コンポーネント固有のです。ポインタが広範囲に使用される場合、またはハードウェアが関与する場合、コードの適合が必要となります。それ以外の場合は、64ビットの再コンパイルに大きな問題はありません。
はい、いずれの場合も、ネイティブコードでは別々のバージョンのコードが必要です。
Delphi 2009のUnicode版の最初のリリースと比較することができると思います。Delphi 2009が出てきたら、サードパーティのコンポーネントベンダーはすべてUnicode対応のコンポーネントをかなり早く提供しました。多くの人がリリース時にコンポーネントを用意していました。
多くの点で、サードパーティのコンポーネントがUnicodeをサポートするために必要な変更は、64ビットで必要とされるよりも煩わしいものと思われます。サードパーティのベンダーはすでに先読みしており、NativeInt
とNativeUInt
のタイプを使用しています。
異なるバージョンについては、サードパーティのコンポーネントベンダーの通常のプラクティスは、サポートされているすべてのプラットフォームでソースコードをコンパイルすることです。パッケージを使用している場合は、コンパイラごとに異なるバージョンが必要ですが、今日でも同様です。コンポーネントは、サポートされている各Delphiバージョンごとにパッケージとともに提供されます。
私が強調したいのは、Unicode Delphiにまだ移動していない場合は、できるだけ早くそれを行うことです。これを行わずに64ビットバージョンのDelphiに移行することはできません。また、Unicode Delphiに移植することができます。
要するに、私はこの問題についてほとんど心配していません。
私はそれが非常に小さな調整になると信じています。 AnsiからUnicodeへの変更は、整数サイズの変更が破られるよりもずっと多くのコードを破った。 –
@warren整数のサイズは変更されません。ポインタサイズのみ。それは重要な区別です。 –
枢機卿は変わるでしょうか? –
要するに、x64 Delphiではコンポーネントが自動的に機能するかもしれませんが、ポインタやアセンブリ言語を使用する場合は、ほとんどが変更が必要になる可能性があります。
デルファイのチームは、できるだけスムーズにアップグレードするよう努めています。
しかし、x64のようなUnicodeは大きな変化であるため、コンポーネントのアップデートも準備してください。
通常、プラットフォームベンダーは第三者ベンダーに一般市民の前で簡単に説明し、サードパーティ製品を新しいプラットフォームバージョンと互換性のあるものにする時間があります。
マイクロソフトではこれを.NETで行っていますが、DelphiチームはUnicodeと.NETでこれを行っています。他のベンダーも同様のことを行っています。
第三者のライブラリベンダーは、Free Pascalのx64バージョンを使用して、変更が必要なことを感じることができました。
ソースコードを見ると、実際には一部のベンダーが行っていることがわかります。
あなた自身も変更を感じることができます。
たとえば、Allen Bauerは、his blogとhis twitter feedを使用して、x64 Delphiに関する情報を投稿します。彼はまた、Delphi.org podcast interviewのDelphi x64についても話しました。
Embarcaderoでは、ロードショーや会議中に、last virtual CodeRage conferenceを含むDelphi x64コマンドラインコンパイラのアルファ版を公開しています。
--jeroen
誰もが、私はこれが最も完成しているので、これを選択します。みなさん、ありがとう。 – LaBracca