Visual c++ “的目的”;“目标机器”;Visual studio中的字段->;链接器->;高级选项->;目标机 我将32位C++应用程序移植到64位(使用VS2008)。 我不确定这个字段在VS2008中是什么意思: Visual studio ->Configuration Properties-> Linker-> Advanced Options->Target Machine.

Visual c++ “的目的”;“目标机器”;Visual studio中的字段->;链接器->;高级选项->;目标机 我将32位C++应用程序移植到64位(使用VS2008)。 我不确定这个字段在VS2008中是什么意思: Visual studio ->Configuration Properties-> Linker-> Advanced Options->Target Machine.,visual-c++,visual-studio-2008,64-bit,32bit-64bit,porting,Visual C++,Visual Studio 2008,64 Bit,32bit 64bit,Porting,默认情况下,它的值设置为“未设置”。 如果我想将我的应用程序移植到64位可执行文件,是否必须将其值更改为“MACHINEx64”。此选项与链接器选项/机器相关,并且是一个提示,提示链接器如果他(链接器)无法从对象文件中确定链接目标代码的目标体系结构。正如MSDN所述,您通常不必指定这一点。因此,不需要在移植代码时显式指定此标志。此选项与链接器选项/计算机相关,如果链接器(链接器)无法从对象文件确定链接对象代码的目标体系结构,则提示链接器链接对象代码的目标体系结构。正如MSDN所述,您通常不必指定

默认情况下,它的值设置为“未设置”。
如果我想将我的应用程序移植到64位可执行文件,是否必须将其值更改为“MACHINEx64”。

此选项与链接器选项/机器相关,并且是一个提示,提示链接器如果他(链接器)无法从对象文件中确定链接目标代码的目标体系结构。正如MSDN所述,您通常不必指定这一点。因此,不需要在移植代码时显式指定此标志。

此选项与链接器选项/计算机相关,如果链接器(链接器)无法从对象文件确定链接对象代码的目标体系结构,则提示链接器链接对象代码的目标体系结构。正如MSDN所述,您通常不必指定这一点。因此,不需要在移植代码时显式指定此标志。

是的,这是一个非常重要的选项。它设置可执行文件中的字段。EXE或DLL头的第一个字段

Windows在加载EXE并知道是否需要从该字段创建32位或64位进程时检查此项。它是Linker+高级属性页的唯一原因是您通常不会更改它。该设置由您创建的项目配置预先选择。如果你得到“未设置”,那么你基本上是做错了,很难猜到你在做什么


假设您有一个正确配置的项目,该项目为您的程序构建了一个工作的32位构建,那么您可以使用build+Configuration Manager创建64位构建。在右上角的“活动解决方案平台”组合框中,选择
。在对话框中选择“x64”。希望其他默认设置(复制设置from=Win32,创建新项目平台勾选)适合您。返回到Linker+高级属性页,设置应更改为MachineX64。

是的,这是一个非常重要的选项。它设置可执行文件中的字段。EXE或DLL头的第一个字段

Windows在加载EXE并知道是否需要从该字段创建32位或64位进程时检查此项。它是Linker+高级属性页的唯一原因是您通常不会更改它。该设置由您创建的项目配置预先选择。如果你得到“未设置”,那么你基本上是做错了,很难猜到你在做什么


假设您有一个正确配置的项目,该项目为您的程序构建了一个工作的32位构建,那么您可以使用build+Configuration Manager创建64位构建。在右上角的“活动解决方案平台”组合框中,选择
。在对话框中选择“x64”。希望其他默认设置(复制设置from=Win32,创建新项目平台勾选)适合您。返回到Linker+高级属性页,设置应更改为MachineX64。

您正在混合编译器设置和链接器设置。链接器应该根据已经生成的对象文件确定体系结构。请参阅此标志上的MSDN。我不是,只是在这里谈论链接器设置。显然,在x86和x64之间进行选择时,编译器非常重要,但对于移动处理器来说,编译器就变得更加模糊了。@Hans Passant:很好的解释。:)是的,你说得对。在32位模式下,我看到“目标机器”字段的默认值是“MACHINEx86”。但当我选择64位模式时,默认值是“未设置”。这就是我在运行64位ported exe时,它作为32位进程运行的原因。但我不确定哪里出了问题,因为它没有被设置为“MACHINEx64”!!我确实改变了两件事::在这个项目的COnfiguration manager中,我改为x64,而且在VS的顶部,有一个从Win32改为x64的选项,正如您解释的那样,我正在努力找出哪里出了问题。如果你能提供任何其他信息?我猜不出哪里出了问题,你根本没有描述你做了什么。为什么不按照我描述的步骤删除配置并重新添加呢。从同一组合框中,选择编辑,选择x64并单击删除。您正在混合编译器设置和链接器设置。链接器应该根据已经生成的对象文件确定体系结构。请参阅此标志上的MSDN。我不是,只是在这里谈论链接器设置。显然,在x86和x64之间进行选择时,编译器非常重要,但对于移动处理器来说,编译器就变得更加模糊了。@Hans Passant:很好的解释。:)是的,你说得对。在32位模式下,我看到“目标机器”字段的默认值是“MACHINEx86”。但当我选择64位模式时,默认值是“未设置”。这就是我在运行64位ported exe时,它作为32位进程运行的原因。但我不确定哪里出了问题,因为它没有被设置为“MACHINEx64”!!我确实改变了两件事::在这个项目的COnfiguration manager中,我改为x64,而且在VS的顶部,有一个从Win32改为x64的选项,正如您解释的那样,我正在努力找出哪里出了问题。如果你能提供任何其他信息?我猜不出哪里出了问题,你根本没有描述你做了什么。为什么不按照我描述的步骤删除配置并重新添加呢。从同一组合框中,选择编辑,选择x64并单击删除。