64bit 対応コンポーネントをインストールする場合、IDE は 32bit 設計時パッケージを必要とします。これは IDE が 32bit であるからです。
このため、64bit アプリケーションを作る場合でも、例えば DBX の接続テストを行う場合、設計時には 32bit のドライバが必要になります。
つまり、32bit ドライバ DLL でも 64bit ドライバ DLL でも接続できるように構成しなくてはならないという事です。
[Delphi XE3 オラクルクライアント64bitでのエラー (Delphi Q&A)]
http://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+201303/13030020.txt
[64 ビット Windows のコンポーネント、パッケージ、ライブラリには 32 ビット設計時版が必要 (DocWiki)]
http://docwiki.embarcadero.com/RADStudio/XE3/ja/Windows_%E5%90%91%E3%81%91%E3%81%AE_64_%E3%83%93%E3%83%83%E3%83%88_%E3%82%AF%E3%83%AD%E3%82%B9%E3%83%97%E3%83%A9%E3%83%83%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0_%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA#64_.E3.83.93.E3.83.83.E3.83.88_Windows_.E3.81.AE.E3.82.B3.E3.83.B3.E3.83.9D.E3.83.BC.E3.83.8D.E3.83.B3.E3.83.88.E3.80.81.E3.83.91.E3.83.83.E3.82.B1.E3.83.BC.E3.82.B8.E3.80.81.E3.83.A9.E3.82.A4.E3.83.96.E3.83.A9.E3.83.AA.E3.81.AB.E3.81.AF_32_.E3.83.93.E3.83.83.E3.83.88.E8.A8.AD.E8.A8.88.E6.99.82.E7.89.88.E3.81.8C.E5.BF.85.E8.A6.81
コンポーネントを作る場合、コードが 64bit 対応になっていても、インストールしてプラットフォームを 64bit Windows にするとコンポーネントがグレーアウトしてしまいます。
これはコンポーネントに 64bit 対応の設定が行われていないからです。
[設計時および実行時に利用可能なコンポーネント (DocWiki)]
http://docwiki.embarcadero.com/RADStudio/XE3/ja/Windows_%E5%90%91%E3%81%91%E3%81%AE_64_%E3%83%93%E3%83%83%E3%83%88_%E3%82%AF%E3%83%AD%E3%82%B9%E3%83%97%E3%83%A9%E3%83%83%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0_%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA#.E8.A8.AD.E8.A8.88.E6.99.82.E3.81.8A.E3.82.88.E3.81.B3.E5.AE.9F.E8.A1.8C.E6.99.82.E3.81.AB.E5.88.A9.E7.94.A8.E5.8F.AF.E8.83.BD.E3.81.AA.E3.82.B3.E3.83.B3.E3.83.9D.E3.83.BC.E3.83.8D.E3.83.B3.E3.83.88
簡単に言えば、パッケージリソースに
PLATFORMTARGETS RCDATA {3}
これを埋め込むと、パッケージは 32bit / 64bit 対応コンポーネントパッケージとして扱われます。
コンポーネントクラスを個別に 32bit / 64bit 指定したい場合には、コンポーネントクラスの定義部の上に
[ComponentPlatformsAttribute(pidWin32 or pidWin64)] TMyComponent = class(TComponent) ...
属性を付加します。
See Also:
[プラットフォーム識別子]
https://ht-deko.com/delphiforum/?vasthtmlaction=viewtopic&t=1256
|