我正在尝试 WinAPI 中的一些东西。我的操作系统是Win7 x64 P1 Ultimate。当我尝试列出进程的所有模块时,我发现我想要的模块是 32 位模块,所以我替换了
TH32CS_SNAPMODULE
With
TH32CS_SNAPMODULE32
此后没有显示任何模块。所以我决定尝试使用按位运算符,看起来如果我发送这样的参数
TH32CS_SNAPMODULE32 | TH32CS_SNAPMODULE
它工作得很好,列出了所有 64 位和 32 位模块。所以我的问题是为什么它不能单独工作?甚至文档也这么说can与一起使用TH32CS_SNAPMODULE
.
引用自MSDN
TH32CS_SNAPMODULE32
从 64 位进程调用时,包括快照中 th32ProcessID 中指定的进程的所有 32 位模块。该标志可以与 TH32CS_SNAPMODULE 或 TH32CS_SNAPALL 结合使用。如果函数因 ERROR_BAD_LENGTH 失败,请重试该函数,直到成功。
无可否认,该文档令人困惑。它的意思是说TH32CS_SNAPMODULE32
flag must与另一个标志组合,但是can only与 结合TH32CS_SNAPMODULE
or TH32CS_SNAPALL
.
这个官方答案的措辞稍微好一点TH32CS_SNAPMODULE 与 TH32CS_SNAPMODULE32- 请注意“extra":
根据开发团队的反馈,TH32CS_SNAPMODULE 将
为您提供本机模块。您可以使用 OR TH32CS_SNAPMODULE32
TH32CS_SNAPMODULE 在 64 位机器上也能获取 32 位模块。它
存在表明您想要extra32 位模块状态。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)