3

这个问题的基础来自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”。

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

4

1 回答 1

2

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

于 2013-02-26T21:50:54.313 回答