2010-01-20 183 views
3

我有Windows应用程序生成使用Visual C++。它正在构建和运行在32位窗口env。现在我需要确保它在Windows Vista/7 64位环境下工作。我需要考虑这个移植过程的所有事情?从32位移植到64位

+2

你有将它移植到64位的还是你必须确保它适用于64位操作系统? – 2010-01-20 08:13:02

+0

@Nikola,准确地说,我需要确保它可以在64位操作系统上运行。 – Unicorn 2010-01-20 08:52:50

回答

7

那不是从32位移植到64,这只是运行在64位机器上的32位代码,以确保它仍然有效。

要做到这一点的方法就是测试64位机器上的所有功能,就像每次发布新版本时一样,对吧? :-)

如果你真的想移植它(即编译成一个64位可执行文件),第一步就是试试它。您可能会发现它的工作原理。我只会担心移植问题,如果你尝试它,然后出现问题。

然后,只有这样,我才能去寻找原因。否则,这可能是浪费精力。

+0

太过真实。我唯一有意义的移植问题是假设指针是4个字节并加载内存映射文件。其他一切“只是起作用”。 – Goz 2010-01-20 08:41:42

0

一个需要注意的问题是,如果您要将简单的旧数据(POD)存储到文件中,或通过IPC或套接字将POD数据传递到其他应用程序等。 我们也有假定4字节长的代码4个字节的指针。不用说,我们删除了这些时代错误。

编译器通常擅长发现其他类型的错误,即长到int的转换等。因此,它通常只是注意编译器警告并相应地更改代码的情况。

1

建立之前,您在x64模式下投影。

  1. 包括所有必要的64位DLL的需要为您的项目
  2. 包括在链接库文件 - 额外的依赖 - 配置属性。
  3. 在C \ C++ - 预处理器 - 配置属性中添加必要的预处理器。
  4. 启用64级的警告 - 在编译时,编译器显示警告

防爆

  1. 转换数据类型从intsize_t可能存在数据
  2. 存储指针地址的损失
  3. 魔术没有。

参考下面的链接,更多的错误和警告,而移植 http://www.viva64.com/en/a/0065/