WinXP和Vista的兼容性

lyb*_*rko 3 delphi delphi-7

我开发了一个使用第三方组件的应用程序(在D7,WinXP上开发).当我在XP上部署这个应用程序时,一切正常.当我在Vista上运行它时,应用程序停止正常工作:

  • 当我打开/关闭可见性时,工具栏上的工具按钮的大小不一致,这就是为什么(第三方)皮肤没有正确嵌套然后看起来很难看.它很烦人,这很烦人,但下一点并不致命.

  • 第三方文本处理组件停止写入.我写了一些例程,允许在某些情况下写这个组件.发现,我无法写任何东西(可能这些例程在写作时返回false,但我没有看到任何理由,为什么在XP上应该可以正常工作,但在Vista上没有),这是一个很大的冲击.

该应用程序运行(最后),但不是在路上,就像它应该!!!!

我想调试它,但是怎么样?

  • 我应该在这台有问题的Vista计算机上安装Delphi 7并在其上编译项目吗?(就是这样,我要做的......)
  • 是第三方组件的问题吗?
  • 是否有可能使用一些编译器指令来确保该应用程序将在Vista上运行完美?(说实话,我不知道Vista是否要声称一般).
  • Delphi 7对Vista来说太旧了吗?

注意:当我在Win98上运行相同的应用程序时,我收到有关无效浮点运算的错误消息...

有人解决了这个问题吗?

谢谢

ang*_*son 5

如果Delphi 7与Windows Vista兼容,它实际上只表示以下一个或两个:

  1. 您可以在Windows Vista上运行Delphi 7
  2. Delphi 7可用于编写可在Windows Vista上运行的程序

并不自动意味着

  • 我在Delphi 7中创建的所有程序都在Windows Vista上运行
  • 我在Delphi 7中创建的所有程序都可以在Windows Vista上正常运行

让我给你一个类比:你可以用锤子把钉钉在墙上而不伤害自己并不意味着无论你做什么,你都不会伤到自己.

如果您的程序(在您自己的代码中,或作为您使用的第三方组件的一部分),使用已更改或甚至可能已删除的Win​​dows部分(虽然这远远少于),那么您需要修复您的程序,没有绕过它.

也没有银弹,所以没有编译器指令或诸如此类的东西.我能想到的最多的是,Windows Vista可能有一些兼容性设置,可以在Vista中打开某些XP兼容层来修复您遇到的特定问题.

但是,唯一的长期解决方案是更改程序,使其与Windows Vista以及Windows 7正确兼容.

既然您说您正在使用第三方组件,那么您是否已验证您使用的特定版本是否与Vista兼容?您需要检查作者的网站才能找到它.也许只需升级这些组件即可解决.

但是,您可能还需要对自己的代码进行更改.

前进的最佳方法是安装Vista和可能的Windows 7并开始调试以尝试找出问题的根本原因.

请注意,只在Vista上安装Delphi 7并重新编译不会修复任何问题.如果在特定的Windows版本上编译它,编译器不会生成不同的程序.只有对代码的更改才会应用必要的更改.