在Visual Studio 2013中,目标CPU和平台有什么区别?

6
在VS 2013中,在项目属性的编译选项卡下,我看到了两个似乎与同一事物相关的配置(如下图所示)。平台和目标CPU。
有什么区别吗?有吗? enter image description here

只有当您的解决方案包含任何 C 或 C++ 项目时,解决方案平台名称才是相关的。这些项目需要使用不同的编译器和链接器进行构建。对于 VB.NET 项目来说并不是问题,它只有一个编译器。最终程序运行在 32 位或 64 位模式取决于您运行的操作系统。至于您在目标 CPU 设置中请求的 jitter,有时候强制使用 32 位模式是有意义的,即使它在 64 位操作系统上运行。 - Hans Passant
平台名称是一个可由用户配置的字符串,但默认情况下它与目标CPU相关联。 - jessehouwing
@HansPassant,不是这样的,如果你的VB代码使用P/Invoke DllImport调用本地代码,或者当你使用Pointer魔法或者想要从x64或wow注册表中读取项目时。 - jessehouwing
当然,那是“有时候”子句。 - Hans Passant
1个回答

6

默认情况下,平台字符串与目标CPU或混合相同。但是,由于平台是可配置的用户字符串,您可以为它们命名任何名称或将其与目标CPU解耦。

我不建议将它们解耦,因为这可能会非常令人困惑。

但是,正如您的屏幕截图所示,可以创建一个名为AnyCPU的解决方案配置或项目配置,然后配置您的项目以构建x86。虽然非常令人困惑,但是确实可行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接