我没有使用过 Windows Vista。我知道许多 API 在 Vista 中已更改/弃用,因此需要修复或配置程序以在 XP 兼容模式下执行。
那么,Windows 程序员在从 XP/Vista 迁移到 Windows 7 时应该知道什么?
我没有使用过 Windows Vista。我知道许多 API 在 Vista 中已更改/弃用,因此需要修复或配置程序以在 XP 兼容模式下执行。
那么,Windows 程序员在从 XP/Vista 迁移到 Windows 7 时应该知道什么?
对于初学者,如果历史教会了我们什么——不要依赖 Beta 或 CTP,尤其是早期的(我相信 Windows 7 的发布日期仍然是 2010 年的某个时间)。
话虽如此,我相信 Windows 7 共享与 Windows 2008 Server 和 Windows Vista SP 1 内核相似的内核以及相同(或相似)的安全模型。这可能同样适用于驱动程序要求,但现在说还为时过早。
在这个早期阶段,您所能做的就是查看您的应用程序是否在 Windows 7 测试版下部署、安装和运行。如果您已经更新了您的应用程序以在 Windows Vista 强制执行的限制范围内运行,那么我敢打赌您可能是安全的。
如果您要从早期版本的 Windows(XP 或更早版本)移植应用程序,那么我会首先针对 Vista 支持(处理/支持安全模型等)。
运气好的话,跳到 Windows 7 可能只需要稍作改动,但实际上你必须在更接近 2010 年的时候查看 Windows 7。
在这个阶段,我们可能会在 2010 年看到 .Net Framework 4.0,因此如果您的应用程序是 .Net 应用程序,您可能会想升级到 4.0 以利用新的语言功能。
编辑:我几乎忘记了这一点——(1)关于为 Windows 7 开发的白皮书! 如果你对这些变化感到好奇,这对它有一种非常深入的感觉。
一些特定的兴趣点/新功能包括:
这是 (2)主页。
[(1) http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=Win7DeveloperGuide&ReleaseId=1702 ]
[(2) http://code.msdn.microsoft.com/Win7DeveloperGuide ]
它认为现在确定还为时过早,但我相信从 Vista 到 Windows 7 的 API 只会有微小的变化。我希望如果您的程序在 Vista 中运行良好,您将无需担心。
Windows 7 中更有可能有新的 API 可供您使用,但在 Vista 中可用的 API 很少,现在不再可用。
XP 到 Vista 是 API 的主要飞跃,就像 98 到 NT 一样,但 NT 和 Windows 2000 之间的变化要少得多。
根据here,有一个用于新的右键单击任务栏功能的新API。例如,访问最近的文件。
我认为在为 Windows 7 编写程序时,我首先要看的是多点触控,它可以帮助提高可用性,并且可能有助于将程序移植到 iPhone 等手机上。
在 10 月份的 PDC 上,他们举行了一系列关于 Windows 7 编程的会议。我认为一个很好的一般概念会议是Windows 7:Windows 7 的设计原则。您可以在此处查看Windows 7 相关会话的完整列表
让我从 XP 到 Vista 的一件事是在注册表中设置一些东西现在需要更高的权限级别,即我的应用程序使用我多年来一直使用的方法设置了一些文件扩展名/程序关联。这不适用于普通用户(至少不是全局用户)并且需要超级用户/管理员权限,我还没有找到至少允许当前用户使用它的方法。
此外,旧的 WinHelp 已经消失(好)。
“文档和设置”文件夹已移至“用户”(很好,从一开始就应该这样!),但 CSIDL 代码(您应该使用它来指定特殊文件夹)是相同的。
带有 scipting 的 WebFolders 在 XP 中已被弃用,它们现在可能已经消失了。
图标文件的新功能/格式。
由于 Windows 7 仍处于 Beta 阶段,因此您无法 100% 确定稳定版本的功能。但是,Microsoft 为早期的 Windows 7 开发人员发布了一个文档非常完善的网站。在这里,您可以找到许多与新 API 相关的内容,以及来自开发团队的一些示例和新闻。您必须考虑的另一个重要事实是 .NET Framework 的存在。它的目标之一是在下面的系统上为您提供一个抽象层,因此通常您可以在 Windows XP 或 Windows Vista 上运行 .NET 应用程序,而不必弄乱低级别的 API。
除非您是驱动程序开发人员,否则请使用独立于平台的图形工具包库,您无需担心实现东西。我个人更喜欢 Qt 或 Java 之类的东西,但我想 .Net API 也将保持兼容。