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

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

有一个IDL文件,这是正确的方法吗?如果是这样,怎么办?

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

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

最佳答案

您需要先将IDL转换为typelib:

就像是:

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/

10-13 05:57