【发布时间】:2009-12-23 09:55:00
【问题描述】:
我计划在 Vista 32 位开发人员中安装使用 RAD2010 编译的应用程序。环境,win 2008 server 64位。 我使用 Firebird 2.0(32 位)作为数据库服务器。
有什么问题吗?或者它应该运行没有任何问题?
【问题讨论】:
标签: delphi 64-bit windows-server-2008 firebird
我计划在 Vista 32 位开发人员中安装使用 RAD2010 编译的应用程序。环境,win 2008 server 64位。 我使用 Firebird 2.0(32 位)作为数据库服务器。
有什么问题吗?或者它应该运行没有任何问题?
【问题讨论】:
标签: delphi 64-bit windows-server-2008 firebird
这个没问题。
如果你可以使用Firebird 2.1(可以使用64位服务器的版本)。
只需获取 fbclient.dll(32 位版本)
【讨论】:
我看不出它为什么不能工作,32 位进程和服务在 x64 下运行良好。如果您的应用程序需要大量内存,您可以设置 LARGE_ADDRESS_AWARE 标志,使您的应用程序可以访问 4GB 的地址空间而不是 2GB。如果需要,您需要在 .dpr 文件中添加包含 {$SetPEFlags $20} 的行。
【讨论】:
我们遇到了 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 大量打开它们,您最终会在一段时间后吃掉所有内存。
【讨论】:
唯一的问题是如果您的应用程序是需要加载到 64 位进程中的库。
示例: 外壳扩展 ISAPI 应用程序
【讨论】: