是否可以使用新的/不同版本的 Indy 重新编译 Delphi XE 中的 DataSnap 包?
好吧——我们有一个有趣的问题。
一些背景:
我们的主要应用程序使用 Indy 10。但是,我们采用 Indy 10 获取并修复其中的错误,重新编译并安装我们自己的 Indy 套件
我们正在迁移到 Delphi XE 并希望开始使用 DataSnap。
DataSnap 需要 Indy 的“官方发布”版本,即 与我们定制的 Indy 版本不兼容。
我们的 DataSnap 服务器将是单独的应用程序,但由于我们 在 IDE 中安装我们自己的 Indy,我们无法“跨流”。
好吧,因此,我们无法使用 Delphi XE 的 DataSnap 了 因为这个兼容性问题。
所以我的问题是:
是否可以使用新的/不同版本的 Indy 重新编译 Delphi XE 中的 DataSnap 包?
您的想法感激地接受。
Okay -- we have an interesting problem.
Some background:
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.We are migrating to Delphi XE and want to start using DataSnap.
DataSnap requires the "official, shipping" version of Indy which is
incompatible with our customized version of Indy.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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
人们普遍认为不,这是不可能的,因为并非所有资源都由 Embarcadero 提供,并且其中一些资源依赖于 Indy 的交付版本。 (这对最终用户来说非常令人沮丧,因为 Delphi 附带的 Indy 版本相对较快地过时,有时当时选择的版本不一定是一个很好的版本。)
请参阅相关的 SO 问题:
是吗可以在 Delphi XE 和 DataSnap 中使用 Indy 10.5.8.0 吗?
另请参阅 Indy 项目页面:
http://www.indyproject.org/Sockets/Docs/indy10Installation.de。 ASPX
其中指出:
据说下一个版本应该可以让 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:
It's been said that the next version should hopefully allow for easier updates of Indy.
如果包含所有 DataSnap 源,当然可以使用某种 PE 可执行 analisys 程序来检测 BPL 中使用了哪些类和单元(因为 BPL 只是定制的 DLL)。 GExperts 提供了一种非常易于使用的工具。
在 BPL 中,来自 GExperts\PE Information 的导出列表行的格式类似于 @xp$@[nn][UnitName]@[TypeName](对于类型)和 @[UnitName]{ @[Type>]}@[Unit 全局元素,如过程或变量](其余)。
您可以将该列表保存到文件中,并通过 GREP 获取 BPL 上使用的单位列表。
真实示例(vcl140.bpl):
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):