为什么用Embarcadero XE6或更高版本开发的应用程序不能以XP为目标?



我尝试在32位XE7下构建一些较旧的应用程序。当我在XP下执行它们时,它们执行得很好,尽管在https://www.embarcadero.com/products/cbuilder/faq和https://www.embarcadero.com/products/delphi/faq中给出了信息。

换句话说,Embarcadero说在XE6+下构建的应用程序不应该在XP下执行,但它确实可以(至少我的应用程序可以)。

这个限制可能是因为XE6+编译器可以产生XP无法处理的API调用。

我的问题是:这些非XP的API调用是否会作为"正常"GUI活动的结果而产生,或者只有当我明确地使用XP中不可用的功能(例如Windows 7任务栏API)时才会发生这种调用。

我想转移到XE7/XE8进行开发,但我需要我的可执行文件保持与XP兼容。

Embarcadero说在XE6+下构建的应用程序不应该在XP下运行。

那不是他们说的。Embarcadero不会在XP下进行测试,也不会为针对XP的应用程序提供任何支持。然而,Marco Cantu已经声明他们不会主动停止在XP上运行的程序。

显然,如果您调用的函数或库在XP中不可用,那么您的程序将无法工作。但是用XE8构建的简单程序可以在XP上运行。如果您需要使用XP中不可用的功能,则必须使用运行时显式链接。并实现回退功能,以处理程序在XP上运行时的情况。

这里的底线是必须在目标平台上仔细测试程序。

相关内容

最新更新