Как ссылаться на COM-библиотеку как shdocvw с помощью компилятора командной строки vbc (без IDE)?

В основу этого вопроса положен этот учебник на support.microsoft.com: http://support.microsoft.com/kb/176792

To run the following code, it is necessary to add a reference to
"Microsoft Internet Controls" (Shdocvw.dll) and "Microsoft HTML Object
Library" (Mshtml.dll) to the Visual Basic project:
Dim SWs As New SHDocVw.ShellWindows 
Dim IE As SHDocVw.InternetExplorer

Это отлично работает в Visual Studio 2010, но, похоже, полагается на некое закулисное волшебство, которое я не могу воспроизвести с помощью прямого компилятора командной строки vbc.

Очевидно, что для компилятора командной строки нет диалогового окна "Добавить ссылку". Я наивно пытался добавить:

/reference:"C:\windows\system32\shdocvw.dll"

в командной строке, но это не помогло. В обоих случаях я получаю:

ошибка BC30002: тип "SHDocVw.ShellWindows" не определен.

ошибка BC30002: тип "SHDocVw.InternetExplorer" не определен.

Я успешно использовал shdocvw.dll, AKA Shell.Application, из других языков, таких как vbscript и autohotkey, но в настоящее время у меня слишком мало понимания VB.NET, чтобы понять, что я делаю это неправильно или это невозможно.

1 ответ

Решение

Сначала вам нужно будет запустить утилиту Tlbimp.exe. Это инструмент, который генерирует библиотеку взаимодействия из библиотеки типов, встроенной в shdocvw.dll, обычно это делается автоматически при добавлении ссылки в IDE. Он создает файл interop.shdocvw.dll, который нужно передать с помощью параметра /reference.

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