我读了一些关于调试器的代码,我对代码用于定义内存地址的变量感到困惑。有时它使用DWORD,有时它使用LPVOID,有人能告诉我为什么Windows使用LPVOID来定义地址吗?
答案 0 :(得分:0)
我的猜测是,无法保证指针值适合DWORD(例如,在64位操作系统上)
在Windows中,DWORD是explicitly 32位int。 LPVOID值是显式指针大小。
答案 1 :(得分:0)
LPVOID所谓的匈牙利语"符号表示"指向void"的长指针,即void far *
。后者起源于16位代码,现在没有任何意义。因此,LPVOID现在与void *
相同,但仍然保持名称以保持兼容性。