此问题的基础来自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的了解太少,无法知道我是做错了还是不可能
答案 0 :(得分:2)
您必须先运行Tlbimp.exe实用程序。这是从嵌入在shdocvw.dll中的类型库生成互操作库的工具,通常在IDE中添加引用时自动完成。它会生成interop.shdocvw.dll,您需要使用/ reference选项传递它。