64位程序迁移要注意的问题

zz from MSDN

Common Visual C++ 64-bit Migration Issues

Visual Studio 2010

1. 即使在64位系统上,int 和  long 也是32位长,这一点与我之前的理解(int 与系统字长一致)不同。并且,注意到指针是64位长,那么在将一个指针类型转换为整型时就要注意:如果使用转为int就可能有被截断的情况。、

2. size_t, time_t, and ptrdiff_t在64-bit windows上是64位的。这里同样要注意类型转换时的问题。

3. 使用 %x (int的16进制形式) 于printf 的格式字符串时,注意:在64位系统上会有问题,因此:

  • 在32位系统上使用 %I32x

  • 在64位系统上使用 %I64x

  • 而 %p (pointer的16进制)在64-bit位系统上没有问题.

How to: Configure Visual C++ Projects to Target 64-Bit Platforms

http://msdn.microsoft.com/en-us/library/9yb4317s.aspx

通过属性页,完成编译参数的设置,如machine\ debug info\ target environment\register output等

原文地址:https://www.cnblogs.com/justin_s/p/2335769.html