我可以在32位机器上构建x64应用程序吗?

时间:2009-03-31 18:31:46

标签: visual-studio-2008 64-bit

如何在32位PC上开发64位应用程序?

我在WinXP 32位上使用VS 2008。我将visual studio链接器设置为/ machine:x64并创建了x64配置。所有将编译和链接确定,但当我在exe上运行依赖性walker我看到64位mscvr90.dll等指向所有Win32 dll,Kernel32.dll,Advapi32,Comdlg32,Gdi32等。

当我复制exe以在Win64系统上运行时,它被拒绝“......应用程序配置不正确”。我如何告诉visual studio远离32位领域?

4 个答案:

答案 0 :(得分:4)

答案 1 :(得分:3)

答案 2 :(得分:0)

“被拒绝”可执行文件的问题可能是您缺少正确的清单文件,和/或vc2008运行时尚未(正确)安装在系统上。如果不使用基于.msi的安装,则目标系统上可能需要this runtime package(VS2008 本机可再发行组件,x64版本)。

即使在64位窗口中,DLL仍然具有32位名称(这是一个糟糕的选择,因为它显然让人感到困惑)。默认情况下,32位应用程序将%systemroot%\ system32重定向到%systemroot%\ syswow64(32位DLL所在的位置),而64位应用程序不会被重定向。 32位应用程序的注册表访问也涉及一些重定向。使用Wow64DisableWow64FsRedirection()可以禁用每个线程,但显然不允许32位应用程序加载64位DLL。

答案 3 :(得分:0)

由于您使用的是VS2008,因此您必须将redist包与应用程序一起复制到测试计算机上,或者将运行时编译为代码中的静态库。