【问题标题】:Visual Studio C++ Application wont run on 32bit computerVisual Studio C++ 应用程序无法在 32 位计算机上运行
【发布时间】:2015-08-11 01:55:10
【问题描述】:

我有一个在 Visual Studio 2010 中制作的程序。我在发布模式和 Win32 解决方案平台下构建了该程序。然后我按照this guide 一步一步制作了一个可执行文件。然后我将创建的 setup.exe 复制到新的 32 位 计算机上。然后,当我尝试在新计算机上运行设置时收到此错误消息:

为什么设置不起作用?我在 Win32 中构建了程序,所以它应该可以在 32 位计算机上运行?我错过了什么吗?任何帮助将不胜感激。

【问题讨论】:

  • 电脑运行的是什么操作系统?
  • 我写代码的系统和新系统都运行Windows 7 Professional
  • 您确定计算机安装了与您的 Visual Studio 2010 相同的 .net 框架吗?
  • 是的,两个版本都安装了 4.5.2,但我编写代码的计算机也有“Microsoft .NET Framework 4 Multi-Targeting Pack”,我需要在另一个版本上安装吗?跨度>
  • 检查您是否真的在为 x86 构建:转到项目属性 -> 链接器 -> 高级并查看目标机器值。它说什么?

标签: c++ visual-studio-2010 32-bit


【解决方案1】:

发生这种情况的主要原因有 3 个。 Windows 可执行文件包含 3 个必须与操作系统匹配的字段:最小操作系统版本号、正确的 CPU 类型和正确的 CPU 位数。现在您可能没有遇到 Windows 版本问题(我认为错误消息有所不同),您不太可能拥有错误的 CPU 类型(ARM 构建很难意外制造),因此最您实际构建了 64 位版本的可能场景。

“Win32”在这里是一个相当具有欺骗性的术语,它并不总是排除 64 位版本。例如。 WIN32 也是为 64 位构建定义的。

【讨论】:

    【解决方案2】:

    @Mailerdaimon 和@MSalters 你是对的。即使我在win32中构建程序,目标机器也是x64。将其更改为 x86 后,程序运行。感谢大家的帮助!

    【讨论】:

      猜你喜欢
      • 2013-08-27
      • 1970-01-01
      • 2010-10-01
      • 2010-10-18
      • 2011-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多