启动64位Windows应用程序开发

时间:2009-12-07 12:08:25

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

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

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

正如您可能已经猜到的那样,我正在寻找一般方向。所有指针将非常感谢! :)

提前致谢..

5 个答案:

答案 0 :(得分:3)

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

然后,您可以参考这些文章获取有关32到64位迁移的指南:

答案 1 :(得分:2)

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

如果您正在进行本机C ++开发,那么您可能必须根据特定平台进行编译并编译两次(x86中的一个和x64中的另一个)。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

首先,您必须知道Windows 64位可以在仿真模式WOW64中同时运行64位和32位,因此您必须决定是否允许这样做,或者您只对'纯'感兴趣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个字节)

答案 4 :(得分:0)

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

Windows development: x86 to x64 transition