我打算开始使用Microsoft Visual Studio 2008为Windows编写64位科学计算应用程序(信号处理)。 就开发平台而言,我应该做些什么呢?
与32位开发有何不同?对于我已经拥有的32位版本,可能有什么移植问题(好吧 - 这可能为时尚早,甚至在我开始编译之前)?
正如您可能已经猜到的那样,我正在寻找一般方向。所有指针将非常感谢! :)
提前致谢..
答案 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位。
假设您想要在两种模式下运行,您应该考虑以下几点:
如果您的应用程序使用 注册表你必须考虑到这一点 像HKLM这样的几个键有两个条目。 例如 HKEY_LOCAL_MACHINE \ SOFTWARE为64 位程序和 HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node 对于32位程序。相近 如果您的应用程序使用 你现在必须要的System32文件夹 处理两个文件夹:System32 for 64位,SysWOW64为32位。
如果您正在使用管理代码 应该选择如何建立 应用。如果它做互操作 调用非托管代码而不是你 需要建立它两次:一个与 平台设置为x64和一个与 平台设置x86。如果你没有 调用非托管代码比你可以调用 将其构建为AnyCPU平台。
显然更多的记忆(每一个 指针需要8个字节而不是4个字节)
答案 4 :(得分:0)
这个问题的所有答案都会对你有帮助。