VC数据类型定义中far
2015-07-23 18:09
561 查看
那是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)
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)
相关文章推荐
- 我为什么主张反对使用Android Fragment
- ActionResult的本质三:JavaScriptResult & JsonResult
- 如何禁止一个类被继承?
- Android 加载图片优化
- C++ Primer 复习杂记(第六章)
- java.net.NoRouteToHostException: No route to host
- Lua中闭包详解 来自RingOfTheC[ring.of.the.c@gmail.com]
- (转)PHP函数spl_autoload_register()用法和__autoload()介绍
- logcat 根据PID 名字过滤log的脚本
- Hibernate教程
- iOS总结控件三(UIView)
- 如何捅破python编程的那层纸之三
- 各个组件的简介
- Andriod开机LOGO和开机动画修改
- ActionResult的本质二:FileResult
- Everything 添加扫描 移动磁盘
- Code First04---关于上下文DbContext
- win32编程,将rgb图像绘制到窗口句柄
- 抽屉菜单使用小结
- 使用MinGW搭建windows下C/C++开发环境