繁体   English   中英

Visual Studio 2017在64位系统上以32位编译吗?

[英]Visual Studio 2017 compiles in 32bit on 64 bit system?

我有一个64位操作系统和一个基于x64的处理器。 但是,当我在选择“任何CPU”的情况下编译Visual Studio项目时,它会作为32位可执行文件进行编译吗?

那么,这里发生了什么,为什么它不能编译为64bit?

之所以需要在64bit中进行编译,是因为我想与64bit非托管C ++ dll进行交互。

在项目构建配置页面上有一个“首选32位平台”复选框,您应该取消选中它。

您的问题的答案是肯定的, 因为.NET 4.5和Visual Studio 2012甚至在64位OS上,默认情况下AnyCPU也将编译为x86。 指向该指针的实际上是@Alexander Powolozki在回答中所说的内容,例如“ Prefer 32 bit”标志。

引用此答案

如果该进程在64位Windows系统上运行,则它将作为32位进程运行。 IL被编译为x86机器代码

进行此设置的原因可能是因为此默认设置可帮助您提高性能 ,因为

当应用程序可以在32位或64位模式下正常运行时,32位模式往往会更快一些。 较大的指针意味着更多的内存和高速缓存消耗,并且32位和64位进程的可用CPU高速缓存的字节数相同。 当然,WOW层确实增加了一些开销,但是我所看到的性能数字表明,在大多数实际情况下,在WOW中运行比在本机64位进程中运行要快

由于这个原因,甚至Visual Studio也不是64位的 (以及将所有库移植到64位的成本)。

因此,除非您取消选中“ prefer 32 bit flag”,否则(如果您还没有的话),并且您可能知道,应该在Visual Studio上创建x64平台并将其用于该特定项目。 转到此窗口,单击“任何CPU”组合框:

在此处输入图片说明

并添加x64位平台:

在此处输入图片说明

这些图像适用于Visual Studio的旧版本,但在所有版本中其工作方式都相似。

是书面说明。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM