Как ссылаться на 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.