我正在创建一个 Windows 窗体应用程序,并且刚刚提出了一个问题,使我的应用程序可以在 32 位和 64 位机器上运行。
我用谷歌搜索了我的问题,找到了一种解决方案,将平台目标从“任何 cpu”更改为 x86,然后编译它。然后它将在两个系统上工作。
现在我的问题是,我是否需要做任何其他事情来实现这一点,否则上述解决方案就可以了。
我正在创建我的应用程序,所以我现在无法测试它。
我正在创建一个 Windows 窗体应用程序,并且刚刚提出了一个问题,使我的应用程序可以在 32 位和 64 位机器上运行。
我用谷歌搜索了我的问题,找到了一种解决方案,将平台目标从“任何 cpu”更改为 x86,然后编译它。然后它将在两个系统上工作。
现在我的问题是,我是否需要做任何其他事情来实现这一点,否则上述解决方案就可以了。
我正在创建我的应用程序,所以我现在无法测试它。
是的,您还需要做三件事,实用的东西:
您需要通过让代码在 64 位模式下运行来检查您是否真的领先。通常,64 位代码的运行速度比 32 位代码慢一点,由于指针大小加倍,它使用 CPU 缓存的效率要低得多。通过它有 8 个额外的 cpu 寄存器来补偿它。如果您在内部循环中操作大量 long 或 double 类型的值,您只会获得性能优势。您可以通过使用更多内存来提高性能,但如果您的程序也必须在 32 位模式下运行,这将很难实现。
您需要在 32 位和 64 位操作系统上测试您的代码。很难避免对本机代码的依赖,其中很多都隐藏在您可能无法识别为本机代码的包装器中。例如数据库提供者。这样的代码有两种不同的风格,它们的行为可能不同。
如果您实际上有这样的依赖关系,那么您可能需要编写两个安装程序,在目标机器上部署正确的本机 DLL。一个 64 位和一个 32 位安装程序。无论您是否这样做,都应该在第 2 条中清除。
显然,您想首先关注第 1 条,它可能会帮助您跳过第 2 条和第 3 条。
解决方案资源管理器->双击属性(应打开一个新选项卡)->构建选项卡
设置配置以'Any CPU'
确保您的应用程序可以在 32 位和 64 位计算机上运行。
这是选项Any CPU, x32bit, x64bit的比较。
“AnyCPU 让您可以在 32 位和 64 位机器上运行,而 x64 只能在 64 位上运行”
从您的帖子中,我认为没有理由不使用Any CPU
.