2

简明扼要:

DIA(调试接口访问)和 DBGHELP 库之间的实际区别是什么?我知道 DIA 是基于 COM 的,并且似乎非常强大(并且能够与托管和非托管进程一起使用),而 DBGHELP 似乎使用起来非常方便,但提供的可能性较小。

任何人都可以解释这两者在哪里有它们的区别,以及可以用一个做什么而不用另一个做什么?我真的很难在互联网上找到一些完整的结论性信息:(

抱歉,如果这似乎是一个无聊的问题,感谢您为我提供的任何答案!:)

问候 PuerNoctis

4

2 回答 2

2

DIA 具有一致的基于 COM 的接口。DbgHelp 由一组标准 C 函数组成。

这是我写的关于 DIA 的两篇文章(带有 C++ 示例),展示了 DIA 的力量:

  1. 符号文件定位器
  2. 如何检查程序数据库 (PDB) 文件的内容

如果可能,请使用 DIA 而不是 DbgHelp,因为任何支持 COM 的程序都可以使用 DIA。

于 2012-06-11T18:45:26.160 回答
0

这是同样的事情。DbgHelp 是核心 api,它可以从 C 中使用。DIA 是基于它的 COM 对象模型,它使它更易于使用,并且可以从大多数任何语言访问。它是Debug Interface Access的首字母缩写,强调“Access”。它的 MSDN 文档从这里开始

于 2012-06-11T18:36:26.017 回答