2011-06-27 10 views
9

オーカー - 面白い問題があります。Delphi XEのDataSnapパッケージを新しい/異なるバージョンのIndyで再コンパイルすることはできますか?

いくつかの背景:

  1. 私たちの主な用途は、しかし、我々はインディ10 ソースを取り、それのバグを修正し、再コンパイル、およびインディ 部品の私たち自身のセットをインストールインディ10を使用しています。

  2. 私たちはDelphi XEに移行しており、DataSnapの使用を開始したいと考えています。

  3. DataSnapは、私たちのカスタマイズされたバージョンのIndyと互換性がない のIndyの "公式出荷"バージョンが必要です。

  4. 私たちのDataSnapサーバーは別々のアプリケーションになりますが、 はIDEにインストールされた独自のIndyを持っているため、ストリームをクロスできません。

さて、それゆえ、我々はこのために、互換性の問題の 箱から出してのDelphi XEのDataSnapのを使用することはできません。

だから私の質問はこれです:

はそれがインディの新しい/異なるバージョンでのDelphi XEにDataSnapのパッケージを再コンパイルすることは可能ですか?

あなたの考えは感謝して受け入れられました。

+0

なぜDataSnapはあなたのIndyバージョンで動作しませんか?インターフェイスを変更していますか? –

+0

私はこれらのパッケージにDPKを見つけることはできませんでした。 –

+0

@David - Hmm。わからない。チェック....彼らは彼らがそう信じていないと言う。それは解決策へのルートかもしれない - 我々の修正を出荷バージョンに適用する。私たちはIndyの新しいバージョンを使用していますが、XE出荷バージョンが動作する可能性があります。 –

答えて

3

共通の信念@ $ 11Forms @ Embarcaderoによって提供されているソースがすべてではなく、これらのソースの一部が出荷されたIndyのビルドに依存しているため不可能です。 Delphiに同梱されているIndyのバージョンが比較的早く古くなっており、その時に選択されたバージョンが必ずしも非常に良いとは限りませんので、エンドユーザーにとっては非常に不満です。)

参照が質問SO関連: http://www.indyproject.org/Sockets/Docs/indy10Installation.de.aspx 状態::

注:D/CB/RAD 2009+では、DataSnapのは インディを使用しています Is it possible to use Indy 10.5.8.0 in Delphi XE and DataSnap?

はまた、インディプロジェクトのページをご覧ください内部的には10。新しい バージョンのIndyをインストールすると、DataSnap が使用できなくなります。これは、 のIndyパッケージを読み込むことができなくなるためです。 DataSnapは、IDEに同梱されているIndy パッケージに対してコンパイルされ、 末尾の ユーザーはDataSnapを再コンパイルできません。 DataSnapを使用する必要がある場合は、 DataSnapプロジェクトで使用するオリジナルのIndy 10パッケージ を維持する必要があります。

次のバージョンでは、インディを簡単に更新することができます。

+1

ゴールデンルール:完全なソースコードなしのコンポーネントを使用しない – mjn

+4

Embarcaderoは今後のXE2リリースでDataSnap/Indyの問題に対処するため、ユーザーはDataSnapを破壊することなく独立してIndyをアップグレードできます。 –

+1

@Mjn:DataSnapはDelphiライブラリです...あなたは完全なソースコード(パッケージ...)を持っていないので、RTL/VCL全体を使うべきではありません! :D –

2

すべてのDataSnapソースが含まれている場合は、BPLで使用されるクラスとユニットを検出するために、ある種のPE実行可能な解析プログラムを使用することはもちろん可能です(BPLはカスタマイズされたDLLです)。非常に使いやすいものがGExpertsに付属しています。 BPLSで

、GExperts \ PE情報からエクスポートリストラインは@xp $ @のようなフォーマットを有する[NN] [UNITNAME](タイプの)と[UNITNAME] {タイプ[@ [型名] @ >]} @ [手続きまたは変数のようなグローバルな要素全体](残りの部分)。

ファイルとGREPにそのリストを保存すると、BPLで使用されるユニットのリストを取得できます。

実例(vcl140.bpl):

  • $ XP TFormは
  • @ Appevnts @ TCustomApplicationEventsアクティブ@
  • @ Clipbrdクリップボード@
+0

+1優れたトリックです。 –

関連する問題