【发布时间】:2016-01-03 23:47:47
【问题描述】:
我在 WinAPI 中试验了一些东西。我的操作系统是 Win7 x64 P1 Ultimate。当我试图列出一个进程的所有模块时,我发现我想要的模块是一个 32 位模块,所以我替换了
TH32CS_SNAPMODULE
有
TH32CS_SNAPMODULE32
在此之后没有显示任何模块。所以我决定尝试使用按位运算符,看起来如果我发送这样的参数
TH32CS_SNAPMODULE32 | TH32CS_SNAPMODULE
它工作得很好,列出了所有 64 位和 32 位模块。所以我的问题是为什么它不能单独工作?甚至文档都说它可以与TH32CS_SNAPMODULE一起使用。
引用自 MSDN
TH32CS_SNAPMODULE32
当从 64 位进程调用时,包括快照中 th32ProcessID 中指定的进程的所有 32 位模块。该标志可以与 TH32CS_SNAPMODULE 或 TH32CS_SNAPALL 结合使用。如果函数以 ERROR_BAD_LENGTH 失败,请重试该函数直到成功。
【问题讨论】:
-
听起来文档有误(或至少措辞不当)。