C# 64位操作系统的C?

C# 64位操作系统的C?,c#,.net,64-bit,C#,.net,64 Bit,如何针对Windows 64位优化编译?根据所选体系结构自动生成托管项目=>在AMD64上创建的默认C项目将是AMD64,在X86上创建的是X86。默认情况下,本机始终为32位 要显式设置平台,请执行以下操作: 1打开解决方案资源管理器,选择解决方案,右键单击->配置管理器 2转到“活动解决方案平台”,单击新建 3在弹出的“新解决方案平台”对话框中,选择新平台,如安腾。将“从复制设置”设置为“任何CPU”,这是“活动解决方案平台”中的默认设置 4单击“确定” 正如Patrick Desjardi

如何针对Windows 64位优化编译?

根据所选体系结构自动生成托管项目=>在AMD64上创建的默认C项目将是AMD64,在X86上创建的是X86。默认情况下,本机始终为32位

要显式设置平台,请执行以下操作:

1打开解决方案资源管理器,选择解决方案,右键单击->配置管理器

2转到“活动解决方案平台”,单击新建

3在弹出的“新解决方案平台”对话框中,选择新平台,如安腾。将“从复制设置”设置为“任何CPU”,这是“活动解决方案平台”中的默认设置

4单击“确定”


正如Patrick Desjardins所说,这是来自

,还有一点补充


如果您有第三方DLL,它使用互操作并使用32位编译,请小心。在这种情况下,您必须特别设置所有使用x86的程序集,否则会发生各种奇怪的事情。

您可能还需要在运行时进行检查,以确保:

using System;
using System.Runtime.InteropServices;

class SystemChecker
{
    static bool Is64Bit
    {
        get { return Marshal.SizeOf(typeof(IntPtr)) == 8; }
    }
}

您可以通过/platform标志编译64位。请注意,visual studio Express没有直接的64位编译设置

有关更多信息,请参阅,以及。从第二个来源获取的信息如下:

在64位Windows操作系统上:

使用/platform:x86编译的程序集将在WOW64下运行的32位CLR上执行。 使用/platform:anycpu编译的可执行文件将在64位CLR上执行。 使用/platform:anycpu编译的DLL将在与其加载到的进程相同的CLR上执行。 运行时检查:

您可以通过以下选项之一在运行时检查执行位环境

bool is64BitProcess = IntPtr.Size == 8;
int bitProcess = IntPtr.Size*8;
//C# 4 provides System.Environment.Is64BitProcess
//TimothyP's solution:
bool is64BitProcess = Marshal.SizeOf(typeof(IntPtr)) == 8;