那是16位时代的产物,表示远指针,现在的32位时代已经不用那么用了。
Win32 不区分 near 和 far 地址。因为 NEAR 和 FAR 类型在 WINDEF.H 中定义,所以它们由包含文件自动处理,被包含文件重新定义为空的 Win32 字符串。因此,忽略 NEAR 和 FAR。如果没有包含 WINDEF.H,方便的解决方案是使用 /D 命令行选项将关键字替换为空字符串。例如:
/D_near= /D_far= /D__near= /D__far=
32 位 Windows 中增加的地址空间在几个方面影响 16 位代码:
指针全都是 32 位宽,不再用 near 或 far,并且代码无法根据分段内存进行假定。
窗口句柄、其他对象(如钢笔、画笔和菜单)句柄和图形坐标已增加到 32 位。因此,不能像在 16 位 Windows 中那样使用可与 HWND 交换的 WORD 这样的类型。
因为不同的大小可以改变某些消息参数中的信息封装方式,所以必须重写消息处理程序。
图形坐标大小的增加影响了若干函数调用。
这些变化影响的主要 16 位代码区域是:
窗口过程声明
Near 和 Far 类型声明
数据类型
消息
API 函数调用
WinMain 函数
(摘自MSDN)