【问题标题】:what's the relation of "win32 project" name in visual studio to x86 or x64 platformVisual Studio中的“win32项目”名称与x86或x64平台有什么关系
【发布时间】:2013-07-10 04:37:43
【问题描述】:

我正在使用 Visual Studio 进行 c++ 编程,在 x86 环境(32 位模式)中工作和编写程序后,我尝试在 x64 环境中构建我的 x86 项目,所以我认为我应该创建一个 win64 控制台项目而不是 win32控制台项目,但在 VC2010 中没有这样的选项。所以我想问一下,对于构建 x64 项目,我还应该选择 win32 项目并使用 here 中的指令更改项目内部 x64 编译的设置?

我使用的是 Windows 7 64 位。

如果你的回答是肯定的那为什么叫win32呢?

【问题讨论】:

  • Win32 可以引用 32 位或 64 位 API。大部分都是一样的。
  • 它被称为win32,原因与人们仍在“拨打”电话号码的原因相同。也就是说,它是从有意义的时候开始的结转。当 win32 出现时,它被命名为与普通的 16 位 Windows 区分开来。在当时,PC 中的 32 位架构是一个令人兴奋的进步。
  • 这个名字可以追溯到 Windows 3.11 和 Windows NT 3.x。在此之前,现有的 API 是 16/32 位混合的。它有许多关于“锁定指针”和“段”的复杂规则,所有这些在 Win32 中都没有了。
  • 如果 Win32 可以引用 32 位或 64 位,那么它作为 Visual Studio 中的平台目标有何意义?

标签: c++ windows visual-studio-2010


【解决方案1】:
  • “Win32”是操作系统 API 的名称。
  • “Win32 控制台应用程序”的名称来自 API(而非位)。

Win32 API 可供 32 位和 64 位应用程序使用。因此,可以为 32 位和 64 位构建 Win32 控制台应用程序。对于后者,请在配置管理器中创建“x64”配置。

【讨论】:

  • 没错。 Win32 API is a synonym 用于 Windows API。现在我们处于 64 位世界,将 Win32 API 缩短为 Win32 是一个特别具有误导性的术语。
【解决方案2】:

其他答案几乎已经涵盖,但我想我可能会添加以下说明:

X86 适用于 Intel/AMD 的 32 位芯片组。 Win32 可以支持其他芯片组,例如 Windows Mobile 项目中的 ARM。

此外,在为 x86 构建原生 c++ 应用程序时,该平台实际上将被称为 win32。

【讨论】:

  • 如果 Win32 可以指代 32 位或 64 位平台,Visual Studio 使用 Win32 指代 32 位平台不是误导吗?
  • @KyleDelaney。我认为您的评论可能是为了另一个答案。但无论如何我都会添加我的想法......默认情况下,Win32 仅指 32 位平台,而不是 64。但是,您可以破坏和(错误)配置设置,因此它确实适用于 64 位平台。然后,人们在谈论 API 集(无论实际平台如何)时仍然使用术语“Win32”。
【解决方案3】:

我认为这里有一个混淆,如果我错了,请告诉我,但你基本上在将控制台程序设置为 x64 平台时遇到问题。

如果您使用的是 express 版本,则需要安装正确的 Microsoft Windows SDK for Windows 7 and .NET Framework 4 和 SP1,如您提供的链接中所述,否则 x64 平台选项将不可用。你已经这样做了吗?

完成此操作后,切换到 x64 将非常容易,您将在平台的下拉列表中获得选项,应该可以正常编译(不,您不需要使用 win32 配置)。

【讨论】:

  • 不,我将环境设置为 x64 平台没有问题。但感谢您的评论
猜你喜欢
  • 1970-01-01
  • 2017-06-11
  • 1970-01-01
  • 1970-01-01
  • 2014-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多