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

Why windows use LPVOID to define a address?

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

我的猜测是不能保证指针值适合 DWORD(例如,在 64 位 OS 上)

在 windows 中,DWORD 是 explicitly 一个 32 位整数。 LPVOID 值明确为指针大小。

LPVOID在所谓的"hungarian"表示法中的意思是"long pointer to void",即void far *。后者起源于 16 位代码,如今已无意义。所以,LPVOID现在和void *一样,但是为了兼容性还是保留了这个名字。