Я пытаюсь написать код C#, который использует SDK DIA (Debug Interface Access) для запроса файла PDB. Я использовал командный файл, описанный в вопросе this, для создания сборки обертки вокруг библиотеки типов DIA. Теперь мне удалось создать экземпляры различных классов COM, открытых SDK..NET COM Callback
Однако возникла проблема. Метод IDiaDataSource::loadDataForExe
требует объект обратного вызова, который реализует один из следующих интерфейсов:
IDiaLoadCallback
IDiaLoadCallback2
IDiaReadExeAtOffsetCallback
IDiaReadExeAtRVACallback
Все эти интерфейсы определены в IDL, однако они не доступны в сборке .NET.
Я что-то упустил или единственный способ реализовать эти интерфейсы в C# - это сначала вручную объявить их с использованием различных атрибутов COM?
Возможный дубликат _ [Как использовать MS DIA SDK с C#?] (Http://stackoverflow.com/questions/697541/how-do-i-use-the-ms-dia-sdk-from -c) _ – MickyD
@ Микки Дункан, я так не думаю. Я попробовал описанный там метод, и результаты были неполными (как описано в моем вопросе). –
Посмотрите в OleView, чтобы узнать, существует ли там интерфейс. Также обратитесь к TypeLibs внизу. Возможно, они не зарегистрированы в вашей системе? – MickyD