2

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

我用谷歌搜索了我的问题,找到了一种解决方案,将平台目标从“任何 cpu”更改为 x86,然后编译它。然后它将在两个系统上工作。

现在我的问题是,我是否需要做任何其他事情来实现这一点,否则上述解决方案就可以了。

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

4

3 回答 3

3

是的,您还需要做三件事,实用的东西:

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

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

  3. 如果您实际上有这样的依赖关系,那么您可能需要编写两个安装程序,在目标机器上部署正确的本机 DLL。一个 64 位和一个 32 位安装程序。无论您是否这样做,都应该在第 2 条中清除。

显然,您想首先关注第 1 条,它可能会帮助您跳过第 2 条和第 3 条。

于 2012-09-07T12:30:38.933 回答
2

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

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

任何 CPU

于 2012-09-07T12:11:10.290 回答
1

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

“AnyCPU 让您可以在 32 位和 64 位机器上运行,而 x64 只能在 64 位上运行”

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

于 2012-09-07T12:20:52.930 回答