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

时间:2013-03-14 10:01:09

标签: windows winapi dll internals

众所周知的DLLMain函数参数之一是 LPVOID lpvReserved 。 来自MSDN文档:

  

如果fdwReason是DLL_PROCESS_ATTACH,则动态的lpvReserved为NULL   加载和静态加载非NULL。

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

1 个答案:

答案 0 :(得分:5)

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

  

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

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

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