c# - 如何从 C# 使用 MS DIA SDK?

标签 c# .net debugging dia-sdk

我正在尝试使用 Microsoft Debug Interface Access SDK来自 C#。这是随 Visual Studio 一起安装的,但文档似乎没有提到如何从 C# 使用它。

我在互联网上找到了示例代码,但没有关于如何链接到 DIA SDK 的信息。 IE。我无法将其作为程序集导入。我不认为我必须将它包含到托管 C++ 应用程序中并将其用作 COM(那太糟糕了)。

有一个IDL文件,这个方法正确吗?如果是这样,如何?


编辑:以下将创建类型库以用作引用程序集。粘贴到批处理文件中。

call "%VS80COMNTOOLS%\vsvars32.bat"
midl /I "%VSINSTALLDIR%\DIA SDK\include" "%VSINSTALLDIR%\DIA SDK\idl\dia2.idl" /tlb dia2.tlb
tlbimp dia2.tlb

最佳答案

您需要先将 IDL 转换为类型库:

类似于:

midl /I "%VSINSTALLDIR%\DIA SDK\include" dia2.idl /tlb dia2.tlb
tlbimp dia2.tlb

然后就可以导入tlb了。

我从来没有这样使用过DIA SDK,所以不知道它会有多友好。您还可以考虑直接从托管 C++ 程序集使用它,并为您需要的功能提供一个托管接口(interface)。

关于c# - 如何从 C# 使用 MS DIA SDK?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/697541/

相关文章:

c# - .NET对象事件和处置/GC

.net - 缺少异步重载?

.net - Windbg 可以显示线程名称吗?

debugging - Haskell 有分步调试器吗?

c# - S/Mime 加密字符串

.net - 如何在.net中将数字格式化为S9(5)V99 ascii

c# - 如果可以在源代码控制提交、 check out 、差异等之前和之后自动格式化代码,公司真的需要标准代码风格吗?

php - 调试 MySQLs "too many connections"

c# - linq to xml 性能

c# - 如何有效地检查一条路径是否是 C# 中另一条路径的子路径?