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

时间:2015-05-28 11:17:23

标签: delphi windows-xp c++builder

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

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

据推测,限制是因为XE6 +编译器可以生成XP无法处理的API调用。

我的问题是:这些非XP API调用是否可以作为“正常”GUI活动的结果生成,或者仅当我明确地使用XP中不可用的功能时才会发生此类调用(例如Windows 7任务栏) API)。

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

1 个答案:

答案 0 :(得分:6)

  

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

这不是他们所说的。 Embarcadero不会在XP下测试,也不会为针对XP的应用程序提供任何支持。然而,Marco Cantu表示他们不会主动停止在XP上工作的程序。

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

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