9

わかりました-興味深い問題があります。

いくつかの背景:

  1. メインアプリケーションはIndy10を使用しますが、Indy 10ソースを取得してバグを修正し、再コンパイルして、独自のIndyコンポーネントのセットをインストールします。

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

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

  4. DataSnapサーバーは個別のアプリケーションになりますが、IDEに独自のIndyがインストールされているため、「ストリームを横断」することはできません。

したがって、この互換性の問題のため、DelphiXEのDataSnapをそのまま使用することはできません。

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

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

あなたの考えはありがたいことに受け入れられました。

4

2 に答える 2

3

すべてのソースがEmbarcaderoによって提供されているわけではなく、これらのソースの一部は出荷時のIndyのビルドに依存しているため、一般的な信念は「いいえ」です。(Delphiに同梱されているIndyのバージョンは比較的早く古くなり、その時点で選択されたバージョンが必ずしも非常に優れているとは限らないため、これはエンドユーザーにとって非常に苛立たしいことです。)

関連するSOの質問を参照してください: DelphiXEおよびDataSnapでIndy10.5.8.0を使用することは可能ですか?

Indyプロジェクトページも参照してください:http: //www.indyproject.org/Sockets/Docs/indy10Installation.de.aspx次の ように記載されています。

注:D / CB / RAD 2009以降では、DataSnapは内部でIndy10を使用します。新しいバージョンのIndyをインストールすると、Indyパッケージをロードできなくなるため、DataSnapが使用できなくなります。DataSnapはIDEに付属のIndyパッケージに対してコンパイルされ、エンドユーザーはDataSnapを再コンパイルできません。DataSnapを使用する必要がある場合は、DataSnapプロジェクトで使用するために元のIndy10パッケージを維持する必要があります。

次のバージョンでは、Indyをより簡単に更新できるようになると言われています。

于 2011-06-27T23:03:44.927 に答える
2

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

BPLでは、GExperts \ PE Informationからのエクスポートリスト行は、 @ xp $ @ [nn] [UnitName] @ [TypeName](タイプの場合)および@ [UnitName] {@ [Type>]} @[ Unitglobalのような形式になります。プロシージャや変数などの要素](残りの部分)。

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

実際の例(vcl140.bpl):

  • @ $ xp $ 11Forms @ TForm
  • @ Appevnts @ TCustomApplicationEvents @ Activate
  • @ Clipbrd @ Clipboard
于 2011-06-27T20:26:59.903 に答える