DLLMain lpReserved参数究竟意味着什么?

Xea*_*nox 1 windows dll winapi internals

众所周知的DLLMain函数参数之一是LPVOID lpvReserved.从MSDN文档:

如果fdwReason是DLL_PROCESS_ATTACH,则对于动态加载,lpvReserved为NULL,对于静态加载,lpvReserved为非NULL.

但lpReserved真正意味着什么?指向somenthing的指针?

Dav*_*nan 6

问题中的引用包含您可以信赖的所有信息:

如果fdwReason是DLL_PROCESS_ATTACH,则对于动态加载,lpvReserved为NULL,对于静态加载,lpvReserved为非NULL.

您有权做的就是将lpvReserved布尔值视为一个布尔值,用于表示有关负载是动态还是静态(也就是隐式)的信息.

有些版本的Windows lpvReserved带有更多的信息,这是一个简单的布尔值,这是完全合理的.但是,这是一个私有的实现细节,你不应该依赖它.