简明扼要:
DIA(调试接口访问)和 DBGHELP 库之间的实际区别是什么?我知道 DIA 是基于 COM 的,并且似乎非常强大(并且能够与托管和非托管进程一起使用),而 DBGHELP 似乎使用起来非常方便,但提供的可能性较小。
任何人都可以解释这两者在哪里有它们的区别,以及可以用一个做什么而不用另一个做什么?我真的很难在互联网上找到一些完整的结论性信息:(
抱歉,如果这似乎是一个无聊的问题,感谢您为我提供的任何答案!:)
问候 PuerNoctis
DIA 具有一致的基于 COM 的接口。DbgHelp 由一组标准 C 函数组成。
这是我写的关于 DIA 的两篇文章(带有 C++ 示例),展示了 DIA 的力量:
如果可能,请使用 DIA 而不是 DbgHelp,因为任何支持 COM 的程序都可以使用 DIA。
这是同样的事情。DbgHelp 是核心 api,它可以从 C 中使用。DIA 是基于它的 COM 对象模型,它使它更易于使用,并且可以从大多数任何语言访问。它是Debug Interface Access的首字母缩写,强调“Access”。它的 MSDN 文档从这里开始。