Delphi 与 Windows 2008 Server 64 位的兼容性
我计划在 Vista 32 位开发中安装使用 RAD2010 编译的应用程序。环境,在win 2008服务器64位。 我使用 Firebird 2.0(32 位)作为数据库服务器。
有什么问题吗?或者它应该运行没有任何问题?
I have a plan to install my application which is compiled using RAD2010 in Vista 32 bit dev. environment, in a win 2008 server 64 bit.
I use Firebird 2.0 (32 bit) as database server.
Is there any issue? Or it should run without any problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这没问题。
如果您可以使用Firebird 2.1(可以使用64位服务器的版本)。
只需要fbclient.dll(32位版本)
No problem for this.
If you can use Firebird 2.1 (a version for 64bit server can be use).
Just take the fbclient.dll (32 bit version)
我认为它没有理由不能工作,32 位进程和服务在 x64 下运行良好。如果您的应用程序需要大量内存,您可以设置 LARGE_ADDRESS_AWARE 标志,该标志使您的应用程序可以访问 4GB 地址空间而不是 2GB。如果您愿意,您需要将包含
{$SetPEFlags $20}
的行添加到 .dpr 文件中。I see no reason why it shouldn't work, 32 bit processes and services work well under x64. If you need lots of memory for you application you can set the LARGE_ADDRESS_AWARE flag which gives your application access to 4GB of address space instead of 2 GB. If you want that you need to add a line containing
{$SetPEFlags $20}
to the .dpr file.我们在 Windows 2008 Server 中遇到了 2 个问题,但它们似乎不会对您造成太大影响:
关键部分现在带有一个调试包,在发布时会被缓存且不会释放。如果您创建很多它们,您的应用程序的内存占用将会更大。大量使用接口或线程时可能会发生。请参阅是-memory-not-reclaimed-for-delphi-apps-running-on-windows-server-2008-sp1 和 Critical-sections-leaking-Memory-on-vista-win2008。
使用ADO时,传递ConnectionString时会发生内存泄漏(在MS堆栈中)。如果您关闭连接并通过 ConnectionString 多次打开它们,您最终会在一段时间后耗尽所有内存。
We have encountered 2 problems with Windows 2008 Server, but it does not seem they should impact you too much:
Critical Sections now come with a debug baggage that is cached and not freed when they are released. If you create lots of them, the memory footprint of your application will be much bigger. Can happen when using Interfaces or Threads heavily. see is-the-memory-not-reclaimed-for-delphi-apps-running-on-windows-server-2008-sp1 and critical-sections-leaking-memory-on-vista-win2008.
When using ADO, there is a memory leak (in MS stack) when passing the ConnectionString. If you close the connections and open them a lot passing the ConnectionString you end up eating all the memory after a while.
唯一的问题是您的应用程序是否是需要加载到 64 位进程中的库。
示例:
外壳扩展
ISAPI应用程序
The only problem is if your application is library that needs to be loaded into a 64bit Process.
Examples:
Shell Extensions
ISAPI applications