【问题标题】:starting 64 Bit Windows Application Development开始 64 位 Windows 应用程序开发
【发布时间】:2010-12-23 23:53:49
【问题描述】:

我打算开始使用 Microsoft Visual Studio 2008 为 Windows 编写一个 64 位科学计算应用程序(信号处理)。 就开发平台而言,我应该准备什么?

它与 32 位开发有何不同?我已经拥有的 32 位版本的移植问题可能是什么(好吧 - 这可能还为时过早……甚至在我开始编译之前)?

正如您可能已经猜到的那样,我正在寻找大致的方向。所有指针将不胜感激! :)

提前谢谢..

【问题讨论】:

  • 您必须提供更多信息才能获得答案。您使用本机代码还是托管代码进行开发?它改变了很多东西......

标签: windows visual-studio-2008 64-bit 32bit-64bit


【解决方案1】:

在安装 Visual Studio 2008 时,请注意勾选安装 64 位编译器和工具的复选框,因为它不是默认的

那么您可以参考这些文章获取 32 位到 64 位迁移的指南:

【讨论】:

    【解决方案2】:

    32位和64位的开发是一样的,就托管代码(.NET)开发而言,只要编译你的代码使用ANY CPU option即可。因此,您在机器上开发的所有代码都可以在 32 位和 64 位平台上正常运行。

    如果你在做原生C++开发,那么你可能需要根据特定平台编译,编译两次(一次在x86,另一次在x64)。

    【讨论】:

      【解决方案3】:

      最重要的区别是指针的大小。在 32 位上是 32 位,在 64 上是 64 位。 int 和 long 保持不变。

      【讨论】:

        【解决方案4】:

        首先你必须知道 Windows 64 位可以在模拟模式下运行 64 位和 32 位 WOW64 所以你必须决定是要允许还是只对“纯”64 位感兴趣.
        假设您想在两种模式下运行,您应该考虑以下几点:

        1. 如果您的应用程序使用 注册表,您必须考虑 像 HKLM 这样的几个键有两个条目。 例如 HKEY_LOCAL_MACHINE\SOFTWARE 为 64 位程序和 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node 对于 32 位程序。相似 如果您的应用程序使用 System32 文件夹,您现在必须 处理两个文件夹:System32 for 64 位和 SysWOW64 用于 32 位。

        2. 如果您使用的是管理代码,您 应该选择如何构建 应用。如果它在做互操作 调用非托管代码而不是你 需要构建它两次:一次与 平台设置为 x64 和一个 平台集 x86。如果你没有 调用非托管代码比你能 将其构建为 AnyCPU 平台。

        3. 而且显然更多的内存(每个 指针占用 8 个字节而不是 4 个字节)

        【讨论】:

        • 谢谢!很有帮助。虽然目前都是原生 c++,但有一天我可能会将 UI 更改为 C# 或其他东西,并将计算部分更改为 C++(需要解决这个问题)。
        【解决方案5】:

        这个问题的所有答案都会对你有所帮助。

        Windows development: x86 to x64 transition

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-03-25
          • 1970-01-01
          • 2011-01-07
          • 2012-03-13
          • 2011-07-12
          • 1970-01-01
          • 1970-01-01
          • 2011-10-14
          相关资源
          最近更新 更多