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

EBl*_*ake 5 delphi windows-xp c++builder

我有一些旧的应用程序,我尝试在XE7,32位下构建.当我在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保持兼容.

Dav*_*nan 6

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

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

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

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