Как использовать MS DIA SDK из C #? - PullRequest
8 голосов
/ 30 марта 2009

Я пытаюсь использовать Microsoft Отладочный интерфейс доступа SDK из C #. Это установлено с Visual Studio, но в документах не упоминается, как вы используете это из C #.

Я нашел пример кода на сайте, но нет информации о том, как связать его с DIA SDK. То есть Я не могу импортировать его как сборку. Я не думаю, что мне нужно включать его в управляемое приложение 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

Ответы [ 3 ]

15 голосов
/ 30 марта 2009

Сначала необходимо преобразовать IDL в typelib:

Что-то вроде:

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

Затем вы можете импортировать TLB.

Я никогда не использовал DIA SDK таким образом, поэтому не знаю, насколько он будет дружелюбным. Вы также можете рассмотреть возможность его использования непосредственно из управляемой сборки C ++ и представления управляемого интерфейса с необходимой вам функциональностью.

3 голосов
/ 25 июля 2017

В случае, если у кого-то возникнут проблемы с путем, вот что сработало для меня для VS 2017.

  1. Открыть командную строку x86_x64 Cross Tools (из меню Пуск / Программы / Visual Studio 2017 в режиме администратора )

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

  3. 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

  4. tlbimp dia2.tlb

Dia2Lib.dll теперь находится в папке C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional.

Используя его в коде C #, я получил незарегистрированное исключение dll! Я должен был бежать

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\DIA SDK\bin>regsvr32 msdia140.dll

чтобы решить эту проблему

2 голосов
/ 09 января 2017

Предыдущие инструкции работали, но нуждались в обновлении. VSINSTALLDIR больше не существует (и неоднозначно, когда у вас установлено несколько версий VS), поэтому я обобщил и исправил инструкции. Вот версия VS 2015:

"%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" amd64
set DIASDK=%VS140COMNTOOLS%..\..\DIA SDK
midl /I "%DIASDK%\include" "%DIASDK%\idl\dia2.idl" /tlb dia2.tlb
tlbimp dia2.tlb

Измените VS140 в соответствии с любой версией, которую вы пытаетесь использовать.

Это созданный dia2lib.dll, который я добавил в качестве ссылки - щелкните правой кнопкой мыши на References, Add Reference, Browse, найдите файл. Это работает, и теперь я могу создавать и запускать сортировку символов.

...