想让windows应用程序在32位和64位上运行

时间:2012-09-07 12:03:04

标签: winforms 32bit-64bit

我正在创建一个Windows窗体应用程序,刚出现了一个问题,我的应用程序可以在32位和64位计算机上运行。

我搜索了我的问题并找到了一个解决方案,将平台目标从“任何cpu”更改为x86,然后进行编译。然后它将适用于两个系统。

现在我的问题是,我是否需要做任何其他事情才能实现这一点,否则上述解决方案将会很好。

我正在创建我的应用程序,所以我现在无法测试它。

3 个答案:

答案 0 :(得分:3)

是的,还有三件事需要做,实际的事情:

  1. 您需要通过让代码以64位模式运行来检查您是否真的领先。通常,64位代码比32位代码运行慢一点,由于指针大小加倍,它使用CPU缓存的效率要低得多。它有8个额外的cpu寄存器来补偿。如果在内部循环中操作很多long或double类型的值,那么你只会获得一个性能优势。 可以从使用更多内存中获得性能提升,但如果您的程序必须以32位模式运行,则很难实现。

  2. 您需要在32位和64位操作系统上测试您的代码。很难避免依赖于本机代码,很多内容都隐藏在您可能无法识别为本机代码的包装器中。例如,数据库提供程序。这样的代码有两种不同的风格,可能表现不一样。

  3. 如果您实际上有这样的依赖关系,那么您可能需要编写两个安装程序,在目标计算机上部署正确的本机DLL。一个64位和一个32位安装程序。无论你是否应该在子弹#2冲洗。

  4. 显然,你想首先关注子弹#1,它可能会帮你跳过2号和3号。

答案 1 :(得分:2)

解决方案资源管理器 - >双击属性(应打开一个新选项卡) - >构建选项卡

配置 设置为 'Any CPU' 可确保您的应用程序可在32位和64位计算机上运行。

Any CPU

答案 2 :(得分:1)

以下是选项Any CPU, x32bit, x64bit的比较。

  

“AnyCPU允许你在32位和64位盒子中运行,而x64只能在64位运行”

在您的帖子中,我认为没有理由不使用Any CPU