0

我猜

  1. Win32 API
  2. MFC
  3. 。网
  4. Java(也是托管的)

是制作 Windows 应用程序的“唯一”方法。 请提及我们是否可以通过其他方式构建赢应用程序

如果它是托管环境 .NET 或 Java。该应用程序将在所有操作系统上运行,无论其版本如何。它只关心框架中的版本(api)变化。

现在来到 Win32api/mfc 我猜这些 api 将仍然向后兼容。所以,当为 windows XP 构建应用程序时。他们需要发布一个单独的 Vista 版本和一个单独的 WINDOWS 7 版本。

为什么?如果它是一个 windowsxp 32 位应用程序。它也应该在 Vista 32bit 和 Windows 7 上运行。正确的?为什么他们必须在新操作系统发布时发布单独的版本(Windows 7)。为什么有些xp应用不能在win7上运行。

好的。假设要发布更新的版本。他们需要做的就是为/在这个较新的 win7 上编译相同的源代码,对吧?那为什么人们要花这么多时间来升级他们的软件。

所以软件可以在所有 xp、vista、win7 上运行,但问题很严重,尤其是硬件驱动程序。必须为新操作系统提供新版本。为什么会这样?

4

3 回答 3

3

您的问题似乎有 2 个子问题。我只针对第一个:

  1. Win32 API
  2. MFC
  3. 。网
  4. Java(也是托管的)

是制作 Windows 应用程序的“唯一”方法。请提及我们是否可以通过其他方式构建赢应用程序

您可能会错过许多其他平台或语言。我并没有声称自己知道所有这些,但我突然想起了py2exe,它允许你用 python 编写 Windows 应用程序。它确实可能最终会转换为 Win32 API,但这也是 .NET 和 JVM(在 Windows 中)所做的。

引自网站:“ py2exe is a Python Distutils extension which converts Python scripts into executable Windows programs, able to run without requiring a Python installation.

编辑

:
事实上,试试这个 - 谷歌“<语言名称> to exe”。看起来大多数语言,至少是流行的语言,背后都有某种 F/OSS 项目,可以将它们编译成 Windows 可执行文件。

于 2009-11-04T04:50:38.610 回答
2

这取决于软件的性质。

针对 XP 的软件必须升级到 Vista/Win7 的最大原因之一是围绕 UAC 的安全问题。例如,许多较旧的 XP 软件会写入 Program Files 目录和某些其他位置的数据文件,如果没有安全提升,这将无法在 Vista 上运行。如果它与保护模式 IE 交互,那么它必须处理保护模式问题。

此外,人们希望您的软件能够利用较新操作系统上的功能。例如,主题和 Aero 皮肤使您的软件与系统上的其他应用程序具有一致的外观和感觉。

于 2009-11-02T23:27:10.063 回答
1
  1. Win32 API 并不总是向后兼容。
  2. 驱动程序代码通常必须更改以利用新功能
  3. 使用新功能的 Win32 代码必须更改以利用新功能
  4. 修复旧东西需要时间和金钱,你可以试着让人们购买新东西。
  5. 如果大部分无法运行的软件是由于在早期版本的操作系统上使用了非 api 入口点,或者由于专门检查版本字符串或依赖管理员权限,我不会感到惊讶。
于 2009-11-02T23:24:19.540 回答