DIA SDK выбрасывает NotImplementedException

Я пытаюсь проверить.pdb, используя DIA SDK из C#, но я не могу получить пользовательские типы, используя этот код:

string pdbFileName = @"c:\test.pdb";
var sourceClass = new DiaSourceClass();
sourceClass.loadDataFromPdb(pdbFileName);
IDiaSession session;
sourceClass.openSession(out session);    

IDiaEnumSymbols symbols;
session.globalScope.findChildren(SymTagEnum.SymTagUDT, null, 0, out symbols);

Я получаю разные результаты, если я ссылаюсь на dia2.tlb или dia2.dll из моего проекта на C#.

Если я ссылаюсь на dia2.tlb, вызов функции завершается успешно, но я не получаю никаких символов назад. Это то же самое, если я прохожу SymTagEnum.SymTagPublicSymbol в findChildren тоже.

Если я ссылаюсь на dia2.dll, функция выдает NotImplementedException вместо. В этом случае прохождение SymTagPublicSymbol в findChildren возвращает символы.

Кто-нибудь сталкивался с этим? Я думаю, что ссылка на.dll является правильной, но я не знаю, почему я получаю NotImplementedException выброшены.

IDL / DLL

Я создал dia2.tlb а также dia2.dll используя команды в командной строке VS:

cd C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional

midl /I "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\DIA SDK\idl";"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\DIA SDK\include" dia2.idl /tlb dia2.tlb

tlbimp dia2.tlb

Большое спасибо.

0 ответов

Другие вопросы по тегам