如何使用vbc命令行编译器(没有IDE)像shdocvw一样引用COM lib?

时间:2013-02-26 20:52:29

标签: command-line compiler-construction com reference vbc

此问题的基础来自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编译器复制的幕后魔术。

显然,命令行编译器没有“添加引用”对话框。我天真地尝试添加:

/参考: “C:\ Windows \ System32下\ shdocvw.dll中”

到命令行,但这没有帮助。在这两种情况下,我得到:

错误BC30002:未定义类型“SHDocVw.ShellWindows”。

错误BC30002:未定义类型“SHDocVw.InternetExplorer”。

我已成功使用shdocvw.dll,AKA Shell.Application,来自其他语言,如vbscript和autohotkey,但我目前对VB.NET的了解太少,无法知道我是做错了还是不可能

1 个答案:

答案 0 :(得分:2)

您必须先运行Tlbimp.exe实用程序。这是从嵌入在shdocvw.dll中的类型库生成互操作库的工具,通常在IDE中添加引用时自动完成。它会生成interop.shdocvw.dll,您需要使用/ reference选项传递它。