フォーラム


ゲスト  

ようこそ ゲスト さん。このフォーラムに投稿するには 登録が必要です。

ページ: [1]
トピック: 64bit 対応コンポーネント
DEKO
管理者
投稿数: 2651
64bit 対応コンポーネント
on: 2013/04/05 10:02 Fri

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:
[プラットフォーム識別子]
http://ht-deko.minim.ne.jp/delphiforum/?vasthtmlaction=viewtopic&t=1256

DEKO
管理者
投稿数: 2651
Re: 64bit 対応コンポーネント
on: 2013/04/05 10:09 Fri

Manifest Ex は 32bit / 64bit / FMX 対応コンポーネントです。

[Manifest Ex]
http://ht-deko.minim.ne.jp/delphiforum/?vasthtmlaction=viewtopic&t=1099

コードの記述が殆どないのでサンプルとしてはお手頃かもしれませんね。

ページ: [1]
WP Forum Server by ForumPress | LucidCrew
バージョン: 1.7.5 ; ページロード: 0.027 sec.