Delphi 与 Windows 2008 Server 64 位的兼容性

Posted

技术标签:

【中文标题】Delphi 与 Windows 2008 Server 64 位的兼容性【英文标题】:Delphi compatibility with Windows 2008 Server 64 bit 【发布时间】:2009-12-23 09:55:00 【问题描述】:

我计划在 Vista 32 位开发人员中安装使用 RAD2010 编译的应用程序。环境,win 2008 server 64位。 我使用 Firebird 2.0(32 位)作为数据库服务器。

有什么问题吗?或者它应该运行没有任何问题?

【问题讨论】:

【参考方案1】:

这个没问题。

如果你可以使用Firebird 2.1(可以使用64位服务器的版本)。

只需获取 fbclient.dll(32 位版本)

【讨论】:

好的,我会先尝试升级 Firebird 服务器。我会在这里更新状态。时间。【参考方案2】:

我看不出它为什么不能工作,32 位进程和服务在 x64 下运行良好。如果您的应用程序需要大量内存,您可以设置 LARGE_ADDRESS_AWARE 标志,使您的应用程序可以访问 4GB 的地址空间而不是 2GB。如果需要,您需要在 .dpr 文件中添加包含 $SetPEFlags $20 的行。

【讨论】:

好的。我会试一试。时间。【参考方案3】:

我们遇到了 2 个与 Windows 2008 Server 相关的问题,但它们似乎不会对您造成太大影响:

    Critical Sections 现在带有一个调试包,该包在发布时被缓存而不是释放。如果你创建了很多,你的应用程序的内存占用会更大。大量使用接口或线程时可能会发生。见is-the-memory-not-reclaimed-for-delphi-apps-running-on-windows-server-2008-sp1 和critical-sections-leaking-memory-on-vista-win2008。

    使用 ADO 时,在传递 ConnectionString 时会出现内存泄漏(在 MS 堆栈中)。如果您关闭连接并通过 ConnectionString 大量打开它们,您最终会在一段时间后吃掉所有内存。

【讨论】:

我使用下面的代码(使用临界区)-> wishknew.multiply.com/journal/item/263/… 会不会导致 D2008 出现内存泄漏问题?【参考方案4】:

唯一的问题是如果您的应用程序是需要加载到 64 位进程中的库。

示例: 外壳扩展 ISAPI 应用程序

【讨论】:

以上是关于Delphi 与 Windows 2008 Server 64 位的兼容性的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 2008/7/Vista 中使 Windows 服务蜂鸣

Delphi公用函数单元 -YzDelphiFunc

Windows 7 与 Delphi 的集成

终于懂了:Delphi消息的Result完全是生造出来的,不是Windows消息自带的(Delphi对Windows编程体系的改造越大,学习收获就越大)

Delphi 数据类型与Windows 数据类型 对照

使用 DELPHI 与 Windows 上的两个应用程序通信