是否可以使用新的/不同版本的 Indy 重新编译 Delphi XE 中的 DataSnap 包?

发布于 2024-11-17 12:55:22 字数 480 浏览 7 评论 0原文

好吧——我们有一个有趣的问题。

一些背景:

  1. 我们的主要应用程序使用 Indy 10。但是,我们采用 Indy 10 获取并修复其中的错误,重新编译并安装我们自己的 Indy 套件

  2. 我们正在迁移到 Delphi XE 并希望开始使用 DataSnap。

  3. DataSnap 需要 Indy 的“官方发布”版本,即 与我们定制的 Indy 版本不兼容。

  4. 我们的 DataSnap 服务器将是单独的应用程序,但由于我们 在 IDE 中安装我们自己的 Indy,我们无法“跨流”。

好吧,因此,我们无法使用 Delphi XE 的 DataSnap 了 因为这个兼容性问题。

所以我的问题是:

是否可以使用新的/不同版本的 Indy 重新编译 Delphi XE 中的 DataSnap 包?

您的想法感激地接受。

Okay -- we have an interesting problem.

Some background:

  1. Our main application uses Indy 10. However, we take the Indy 10
    source and fix bugs in it, recompile, and install our own set of Indy
    components.

  2. We are migrating to Delphi XE and want to start using DataSnap.

  3. DataSnap requires the "official, shipping" version of Indy which is
    incompatible with our customized version of Indy.

  4. Our DataSnap servers will be separate applications, but since we
    have our own Indy installed in the IDE, we can't "cross the streams".

Okay, therefore, we are unable to use Delphi XE's DataSnap out of the
box because of this compatibility issue.

So my questions is this:

Is it possible to recompile the DataSnap packages in Delphi XE with a new/different version of Indy?

Your thoughts gratefully accepted.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

苏辞 2024-11-24 12:55:22

人们普遍认为不,这是不可能的,因为并非所有资源都由 Embarcadero 提供,并且其中一些资源依赖于 Indy 的交付版本。 (这对最终用户来说非常令人沮丧,因为 Delphi 附带的 Indy 版本相对较快地过时,有时当时选择的版本不一定是一个很好的版本。)

请参阅相关的 SO 问题:
是吗可以在 Delphi XE 和 DataSnap 中使用 Indy 10.5.8.0 吗?

另请参阅 Indy 项目页面:
http://www.indyproject.org/Sockets/Docs/indy10Installation.de。 ASPX
其中指出:

注意:在 D/CB/RAD 2009+ 中,DataSnap 使用
印地 10 内部。安装新的
Indy 版本将渲染 DataSnap
无法使用,因为它将无法
不再加载印地包。
DataSnap 是针对 Indy 编译的
IDE 附带的软件包,以及
DataSnap 无法在结束时重新编译
用户。如果您需要使用DataSnap,
那么你需要维护
原始 Indy 10 软件包用于
DataSnap 项目。

据说下一个版本应该可以让 Indy 的更新变得更容易。

The common belief is No, that's not possible due to not all sources being provided by Embarcadero and some of these sources are reliant on the build of Indy as shipped. (Which is extremely frustrating to end users as the version of Indy that ships with Delphi is out of date relatively quickly and sometimes the version selected at the time is not necessarily a very good one.)

See related SO question:
Is it possible to use Indy 10.5.8.0 in Delphi XE and DataSnap?

Also see the Indy project page:
http://www.indyproject.org/Sockets/Docs/indy10Installation.de.aspx
which states:

Note: In D/CB/RAD 2009+, DataSnap uses
Indy 10 internally. Installing a new
version of Indy will render DataSnap
unusable, as it will not be able to
load the Indy packages anymore.
DataSnap is compiled against the Indy
packages that ship with the IDE, and
DataSnap cannot be recompiled by end
users. If you need to use DataSnap,
then you will need to maintain the
original Indy 10 packages for use in
DataSnap projects.

It's been said that the next version should hopefully allow for easier updates of Indy.

ゃ人海孤独症 2024-11-24 12:55:22

如果包含所有 DataSnap 源,当然可以使用某种 PE 可执行 analisys 程序来检测 BPL 中使用了哪些类和单元(因为 BPL 只是定制的 DLL)。 GExperts 提供了一种非常易于使用的工具。

在 BPL 中,来自 GExperts\PE Information 的导出列表行的格式类似于 @xp$@[nn][UnitName]@[TypeName](对于类型)和 @[UnitName]{ @[Type>]}@[Unit 全局元素,如过程或变量](其余)。

您可以将该列表保存到文件中,并通过 GREP 获取 BPL 上使用的单位列表。

真实示例(vcl140.bpl):

  • @$xp$11Forms@TForm
  • @Appevnts@TCustomApplicationEvents@Activate
  • @Clipbrd@Clipboard

If all DataSnap source is included, is of course possible using some kind of PE executable analisys program to detect which classes and units are used in BPL (as BPLs are just customized DLLs). An very easy one to use is provided with GExperts.

In BPLs, the exports list lines from GExperts\PE Information have an format like @xp$@[nn][UnitName]@[TypeName] (for types) and @[UnitName]{@[Type>]}@[Unit global element like procedures or variables] (for the rest).

You can save that list to a file and GREP to get an list of Units used on a BPL.

Real Examples (vcl140.bpl):

  • @$xp$11Forms@TForm
  • @Appevnts@TCustomApplicationEvents@Activate
  • @Clipbrd@Clipboard
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文