我试图编写一些使用DIA (Debug Interface Access) SDK来查询PDB文件的C#代码。我使用this问题中描述的批处理文件在DIA类型库周围创建包装程序集。现在我可以创建由SDK公开的不同COM类的实例。.NET COM回调
但是,出现了问题。该IDiaDataSource::loadDataForExe
方法要求实现以下接口之一的回调对象:
IDiaLoadCallback
IDiaLoadCallback2
IDiaReadExeAtOffsetCallback
IDiaReadExeAtRVACallback
所有这些接口中的IDL中定义,但是它们在生成的.NET程序集中不可用。
我是否缺少一些东西,或者是在C#中实现这些接口的唯一方法是首先手动使用各种COM属性声明它们?
可能重复_ [如何使用C#中的MS DIA SDK?](http://stackoverflow.com/questions/697541/how-do-i-use-the-ms-dia-sdk-from -c)_ – MickyD
@MickyDuncan,我不这么认为。我尝试了那里描述的方法,结果不完整(如我的问题所述)。 –
在OleView中查看是否在此处定义了接口。另请参阅底部的TypeLibs。也许他们没有在你的系统上注册? – MickyD