64位操作系统的编程与32位有什么不同?需要注意哪些?
谢谢!

解决方案 »

  1.   

    这里的64位技术是相对于32位而言的,这个位数指的是CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集就是运行64位数据的指令,也就是说处理器一次可以运行64bit数据。64bit处理器并非现在才有的,在高端的RISC(Reduced Instruction Set Computing,精简指令集计算机)很早就有64bit处理器了,比如SUN公司的UltraSparc Ⅲ、IBM公司的POWER5、HP公司的Alpha等。64bit计算主要有两大优点:可以进行更大范围的整数运算;可以支持更大的内存。不能因为数字上的变化,而简单的认为64bit处理器的性能是32bit处理器性能的两倍。实际上在32bit应用下,32bit处理器的性能甚至会更强,即使是64bit处理器,目前情况下也是在32bit应用下性能更强。所以要认清64bit处理器的优势,但不可迷信64bit。要实现真正意义上的64位计算,光有64位的处理器是不行的,还必须得有64位的操作系统以及64位的应用软件才行,三者缺一不可,缺少其中任何一种要素都是无法实现64位计算的。目前,在64位处理器方面,Intel和AMD两大处理器厂商都发布了多个系列多种规格的64位处理器;而在操作系统和应用软件方面,目前的情况不容乐观。因为真正适合于个人使用的64位操作系统现在就只有Windows XP X64,而Windows XP X64本身也只是一个过渡性质的64位操作系统,在Windows Vista发布以后就将被淘汰,而且Windows XP X64本身也不太完善,易用性不高,一个明显的例子就是各种硬件设备的驱动程序很不完善,而且现在64位的应用软件还基本上没有,确实硬件厂商和软件厂商也不愿意去为一个过渡性质的操作系统编写驱动程序和应用软件。所以要想实现真正的64位计算,恐怕还得等到Windows Vista普及一段时间之后才行。目前主流CPU使用的64位技术主要有AMD公司的AMD64位技术、Intel公司的EM64T技术、和Intel公司的IA-64技术。其中IA-64是Intel独立开发,不兼容现在的传统的32位计算机,仅用于Itanium(安腾)以及后续产品Itanium 2,一般用户不会涉及到 
      

  2.   

    对程序员来说,影响不大, 仅仅是int的范围更大了一点如果64位不能向下兼容......想普及要十年以后了
      

  3.   

    我的实践经验:
    http://www.vckbase.com/document/viewdoc/?id=1857
    微软标准文档:
    http://msdn.microsoft.com/en-us/library/h2k70f3s(VS.80).aspx
      

  4.   

    有些API不同
    比如 GetTickCount 变成了 GetTickCount64其它方面区别很小,  比如 HOOK的时候 注入64bit进程 必须使用64bit DLL