2

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

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

但 lpReserved 的真正含义是什么?是指向某物的指针吗?

4

1 回答 1

6

问题中的引用包含允许您依赖的所有信息:

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

您有权做的只是将lpvReserved其视为一个布尔值,它发出有关负载是动态还是静态(也称为隐式)的信息。

完全合理的是,有些版本的 Windows 可以lpvReserved携带比普通布尔值更多的信息。但是,这是一个私有的实现细节,你不应该依赖它。

于 2013-03-14T13:45:28.603 回答