为什么Windows使用LPVOID来定义地址?

时间:2015-03-04 07:09:57

标签: windows debugging memory

我读了一些关于调试器的代码,我对代码用于定义内存地址的变量感到困惑。有时它使用DWORD,有时它使用LPVOID,有人能告诉我为什么Windows使用LPVOID来定义地址吗?

2 个答案:

答案 0 :(得分:0)

我的猜测是,无法保证指针值适合DWORD(例如,在64位操作系统上)

在Windows中,DWORD是explicitly 32位int。 LPVOID值是显式指针大小。

答案 1 :(得分:0)

LPVOID所谓的匈牙利语"符号表示"指向void"的长指针,即void far *。后者起源于16位代码,现在没有任何意义。因此,LPVOID现在与void *相同,但仍然保持名称以保持兼容性。