首页 > 编程知识 正文

MSHTML(编译错误子过程或函数未定义)

时间:2023-05-03 22:42:15 阅读:75884 作者:511

我今天看到了验证码识别的代码。 其中引用了mshtml.dll。 找了半天就是microsoft.mshtml.dll。 在检查此dll时,还发现了一些有关添加此dll问题的文章。 顺便说一下,这个dll有三个。 添加引用时请注意。

第一篇文章:

1 .添加引用的问题

通常,在开发环境中,microsoft.mshtml.dll文件存储在三个位置。 所以,在添加引用时,也会出现看起来相同的三个项目。 对开发者来说,引用任何一个都不会影响通常的开发。 但是,问题是软件发布之后! 在客户计算机上运行时,通常会提示文件签名不正确,无法加载。

解决方案是删除对当前mshtml的引用。 重新选取正确的参照。 就是选择最下面的东西。 路径为x :program filesMicrosoft.netprimaryinteropassembliesMicrosoft.mshtml.dll。 打开引用对话框时,可以看到文件的路径。

2 .类型选择错误

问题解决后,或者从一开始就做出了正确的选择。 客户端可能已启动,并且报告System._ComObject无法强制转换为htmlwindow2类、HtmlDocumentClass或其他类似错误。 在开发人员的机器上运行,但完全正常。 这个时候,我们总是疯狂地抓住。 我完全不知道是什么原因。 在开发环境中,obj.toString ()表示HtmlXXXXClass在客户端上正在生成结果,但System._ComObject .解决方案很容易被HtmlXXXX替换。

第二篇文章:

我们还使用了Microsoft mshtml.dll程序集,但在用户计算机上安装后出现异常:

system.reflection.targetinvocationexception :调用的目标发生异常。 --- system.io.file not found exception :表示文件或程序集“Microsoft.mshtml,Version=7.0.3300.0,culture=neuture”

解决方法如图所示,选择高亮显示的dll即可。

选择属性:

复制本地=True

特定版本=false;

理由如下。

名为Microsoft.mshtmal.dll的dll是从system32文件夹下的mshtml.tlb(com类型库文件)导出的,因此VS2008附带的TlbImp.exe COM类型库文件

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。