【问题标题】:Win32 support on Windows 10Windows 10 上的 Win32 支持
【发布时间】:2015-10-21 20:44:00
【问题描述】:

Windows 10 是否支持在 ARM 处理器上运行较旧的 Win32(MFC、ATL、Visual Basic 6)应用程序?是否需要某种形式的模拟或转换?

【问题讨论】:

  • 没有。仿真:我不知道。 AFAIK,您甚至无法在 Windows Surface(非 x86)计算机上创建桌面应用程序。
  • 有一段时间,您可以构建自己的使用 Win32 API 的 ARM 应用程序(仅限于 MS 内部和越狱平板电脑)。 ARM 上的 WinRT/Win10 不支持任何面向 x86 的旧版应用程序。您可能会运行 x86 模拟器,但必须将其构建为“现代”应用程序。

标签: winapi vb6 arm windows-10


【解决方案1】:

根本没有 x86 Win32 仿真。您需要使用为该平台设计的工具集。

【讨论】:

  • 其实它有Win32,只是ARM Win32而不是x86。
  • 但是 ARM Win32 不只是 Win32 API 的一个子集吗?
  • ARM 是一种不同的架构。它有一个完全不同的ISA。您不能获取 x86 代码并在 ARM 上运行它。
  • 他们不是在询问 ARM 架构——他们是在询问适用于 Windows 的 ARM 架构的 Win32 版本是否[只是] Windows 多年来拥有的 Win32 API 的一个子集。子集是指功能上的,而不是架构上的——我认为很明显 ISA 是不同的,但这并不意味着您不能拥有 DLL 并从您的 Visual C++ 应用程序中调用 CreateFile。
  • @amn 由于 ISA 不同,因此需要模拟来运行 x86 可执行文件
【解决方案2】:

与 7/8.1 一样,Windows 越来越倾向于网络的做事方式。很多命令行功能都是通过网络调用完成的。

还请注意,Win10 几乎是 Win NT,它基本上是 Win98 应该的样子,以避免病毒大量涌入这个带有摆动门且没有任何形式的保护的操作系统。

NT 方面的事情会及时影响所有程序员,尤其是在以下方面,

您的用户的权利。这是一件好事,因为我们都对我们的用户为病毒和黑客敞开大门而感到沮丧。 NT 至少有助于消除很多这种情况。

文件处理。 Win10 向按需操作系统迈出了一大步(这是微软当前的目标),所以我们不能假设我们的软件使用的项目总是在本地存在,所以我们必须通过 .NET 路由为按需提供准备正确进入,以便操作系统处理我们的需求。虽然让我感到担心的是,我们目前还没有真正的线索来说明如果请求不能被完全填写,将如何处理。

但我们也不能对文件访问权限偷懒。例如,我们倾向于在用户区域对访问权限做出假设,然后当我们扫描或搜索所有目录时被咬到,结果发现 DirectoryInfo.GetDirectories 无法使用,除非我们确保特殊文件夹不会阻止它中途。

由于所有目录最终都会成为特殊文件夹,因此我们需要处理我们现在所做工作的访问权限。我认为 C++ 比 C# 更容易完成。

所以,如果你是在“托管”代码中完成的,那么它应该去 C# 和 VB 去的任何地方,如果你愿意,可以调用我的 synical,但我不禁对此表示怀疑,我真的看不出来MS 发现希望在 NET 上拥有按需应用程序和操作系统,同时提供封装在 MFC 中的 Win32 作为替代方案。你可能会发现你的代码被困在一个缩小的盒子里。

【讨论】:

    猜你喜欢
    • 2015-07-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    相关资源
    最近更新 更多