将在XP上编写的Windows应用程序转换为Windows 7

时间:2010-11-02 04:03:02

标签: visual-c++ com windows-7 windows-xp backwards-compatibility

我继承了一个巨大的代码库,可以在Windows XP上运行。现在我们想迁移到Windows 7.我不知道解决这个问题的正确方法是什么。完成上述任务的正确方法是什么?我做了一些谷歌搜索XP和Windows 7之间的差异,但我没有得到任何正确的链接,描述7的内部与XP的不同之处。任何链接将不胜感激。

通常,软件开发人员如何将针对某个操作系统版本编写的代码/应用程序迁移到Windows 7?

4 个答案:

答案 0 :(得分:3)

我销售自动更新解决方案(AutoUpdate +,次要插件),因此有很多将Windows应用程序移植到最新版本的经验,但仍保持向后兼容性。从Windows XP移植到Windows 7可能是一个巨大的挑战(从Windows Vista迁移到Window 7几乎没有差别。)

Window XP并不关心应用程序的存在位置,因此程序员会将其应用程序和支持逻辑(日志文件,配置文件,用户配置文件等)转储到“C:\ Program Files”下的相同位置。 。将此应用程序带到Windows 7,您将开始发现一些不寻常的行为。对于初学者,您会注意到文件似乎“消失”。在“兼容性/程序文件”下,您可能最终为每个用户提供多个单独的副本,而不是在常见的Program Files位置下修改日志文件。 Windows Vista / 7引入了文件系统虚拟化,现在将创建单独的文件用户实例,以确保每个用户都拥有自己的安全副本。

您将在Windows Vista上遇到的另一个问题是Windows 7的用户帐户控制(UAC)提示。它类似于上面的问题,因为新的安全限制现在将导致Windows Vista / 7提示用户批准继续。发生这种情况的最明显的区域是当您篡改敏感目录中的可执行文件,安装应用程序和驱动程序时,有时在尝试自我更新应用程序时(上述应用程序实际上可以使用某些智能逻辑解决这些提示)。 / p>

简而言之,安全性更改是Windows XP和Windows Vista / 7之间的最大区别。最好的开始是将应用程序逻辑(二进制文件)与支持逻辑分开,方法是将后者放入用户特定的目录中。某些应用程序可能永远无法修复,可能会被强制转而在兼容模式下工作,或者始终在管理员帐户环境下启动 - 处理不当,但可能适合您的公司。

Simon @ http://AutoUpdatePlus.com

答案 1 :(得分:1)

迁移有三个部分。首先,让它只是简单的工作。这意味着修复硬编码的文件路径(没有更多的文档和设置),更改了一些保存位置,因此您无需升级即可正常工作,也不需要依赖虚拟化,更改一些注册表项位置同样的原因,并应对高DPI,现在可能会根据屏幕尺寸而不是用户的选择自动应用。

其次,让它看起来像Windows 7应用程序一样工作。你的跳转列表是否可用?你的缩略图?你得到一些免费的东西,你喜欢你得到的或者你想控制它吗?您是否可以使用明显的胜利,如缩略图按钮,跳转列表任务,任务栏覆盖等。不要让用户感到惊讶,也不要让用户失望。 (失望的例子:VS 2008和它提供的糟糕的跳转列表。他们有借口在Windows 7之前发布 - 你没有。)

第三,利用Windows 7比你更大。停止轮询网络连接,创建文件,插入硬件,打开和关闭交流电源等,并了解如何在发生这些事情时收到通知。添加超出您免费获得的触摸支持。首次与传感器或GPS通信,因为Windows 7使其比以往更简单。那种事。

1不是可选的。在Windows 7发布一年后,2也不是可选的。 3将区分你和我的推荐,一旦你超过1和2,你会调查它。

答案 2 :(得分:0)

基本上Windows7是一个4位操作系统,因此必须在64位处理器环境中运行。 XP有32位和4位口味。如果您的应用程序是针对32位版本的XP,那么主要迁移意味着使应用程序在4位操作系统上有效运行。

基本步骤可以是这样的:

  1. 使其与64位win7兼容。所以你可以从win7机器(64位)编译代码。如果编译工作正常,您可以成功运行该应用程序。

  2. 第一步只是允许继续前进。但您的申请可能无效。在这种情况下,您可能必须查看32位操作系统上的任何特定实现的代码,并升级它们以利用64位操作系统。

  3. 64位操作系统的主要优点是更高的地址能力(因此可以访问更多的RAM)以及缓存等。

答案 3 :(得分:0)

  

我做了一些关于XP和Windows 7之间差异的谷歌搜索,但我没有得到任何正确的链接来描述7的内部与XP的区别。任何链接将不胜感激。

XP和Vista之间的API差异报告:https://abi-laboratory.pro/compatibility/Windows_5.0_to_Windows_6.0/x86_64/abi_compat_report.html

Vista和7之间的API差异报告:https://abi-laboratory.pro/compatibility/Windows_6.0_to_Windows_7.0/x86_64/abi_compat_report.html

报告由 abi-compliance-checker 工具生成。

enter image description here