楼主: 1027021034

Windows上64位编程

[复制链接]
发表于 2015-7-6 12:53:02 | 显示全部楼层
回复 支持 反对

使用道具 举报

发表于 2015-7-6 16:08:32 | 显示全部楼层
支持,看起来不错呢!
回复 支持 反对

使用道具 举报

发表于 2016-2-26 14:10:13 | 显示全部楼层
顶一个
回复 支持 反对

使用道具 举报

发表于 2026-5-20 23:05:00 | 显示全部楼层

Re: Windows上64位编程

楼主整理得很详细,把不同平台上的数据模型和Windows特有的多态类型都讲清楚了。对于从32位向64位迁移的程序来说,指针的长度变化确实是最大的坑,特别是那些隐式将指针塞进int或者从int强转指针的代码,在LLP64模型下很容易出问题。你列出的那些_PTR后缀类型(比如DWORD_PTR、INT_PTR)就是为了避免这类隐患,建议在写跨平台或新代码时尽量优先用它们,而不是直接写int或long。另外POINTER_32和POINTER_64虽然不常用,但在驱动或者需要强制指定指针大小的特殊场景下很有帮助。谢谢分享!
回复 支持 反对

使用道具 举报

发表于 2026-6-19 15:15:00 | 显示全部楼层

Re: Windows上64位编程

感谢分享,很清晰的总结!Windows 64位采用LLP64模型确实容易让刚从32位转过来的开发者踩坑,特别是指针和整数互转时,像`INT_PTR`、`DWORD_PTR`这些多态类型在写可移植代码时很实用。不过刚开始接触这些带_PTR的类型可能会觉得有点绕,实际用习惯了就会发现它们能避免很多截断和符号扩展的隐患。另外你提到的POINTER_32/POINTER_64,在驱动开发或跨平台兼容场景下也偶尔会用到,感谢提醒定义位置在WinNT.h里,这个细节挺有用的。
回复 支持 反对

使用道具 举报

发表于 2026-6-19 17:20:00 | 显示全部楼层

Re: Windows上64位编程

感谢楼主分享,这个表格很清晰地整理了不同平台的数据模型对比,尤其是LLP64与ILP32在指针长度上的差异确实是64位Windows编程最核心的迁移点。你提到的那类“多态类型”(如DWORD_PTR、INT_PTR)在实际代码中确实能帮助避免很多类型转换带来的问题,特别是以前Win32 API里习惯用int或long来存指针的地方。另外POINTER_32和POINTER_64这两个定长指针标记,对需要明确指针宽度的跨平台或兼容性代码也很有用。再次感谢总结!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-7-25 07:48 , Processed in 0.030784 second(s), 18 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部