关于引用mshtml的问题[通俗易懂]

今天看了个验证码识别的代码,其中引用到了mshtml.dll,找了半天原来就是microsoft.mshtml.dll。查这个dll的时候还发现了好几篇关于这个dll添加问题的文章。顺便看了下,原来这个dll有三个,添加引用时要注意了。   第一篇文章:   1.添加引用的问题   一般在开发环境下会在三个地方存有microsoft.mshtml.dll文件。所以在添加引用时,也

大家好,又见面了,我是你们的朋友全栈君。

    今天看了个验证码识别的代码,其中引用到了mshtml.dll,找了半天原来就是microsoft.mshtml.dll。查这个dll的时候还发现了好几篇关于这个dll添加问题的文章。顺便看了下,原来这个dll有三个,添加引用时要注意了。
    第一篇文章:
    1.添加引用的问题
    一般在开发环境下会在三个地方存有microsoft.mshtml.dll文件。所以在添加引用时,也会出现三个看似一样的项。对于开发者来说,引用其中任何一个都不会影响到正常的开发。但问题会出在软件发布之后!在客户的机子上运行时,通常会提示文件的签名不正确,无法加载。
解决的方法就是删除现在对mshtml引用。重新选择正确引用。就是选最下面那个。路径是:X:\Program Files\Microsoft.NET\Primary Interop Assemblies\Microsoft.mshtml.dll 。把引用对话框拉大,可以看到文件的路径。
    2.类型选择错误
    如果问题一解决了,或者开始就选对了。可能客户机了上运行又报 System._ComObject 无法强制转换到 HtmlWIndow2Class 、HtmlDocumentClass或其它类似的错误。在开发者的机子上运行,却完全正常。这时通常我们会狂抓,完全不知是什么原因!在开发环境下用obj.toString()显示是HtmlXXXXClass在客户机上得到结果却是System._ComObject.解决方法很简单用HtmlXXXX替换HtmlXXXXClass即可。
     第二篇文章:
    也是用到了Microsoft mshtml.dll程序集,但是安装在用户电脑后,异常:
System.Reflection.TargetInvocationException: 调用的目标发生了异常。 —> System.IO.FileNotFoundException: 未能加载文件或程序集“Microsoft.mshtml, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。系统找不到指定的文件。
解决方法如图,选择高亮的那个dll就可以了。

关于引用mshtml的问题[通俗易懂]
属性选择:
复制本地=True
特定版本=false;  
原因是:
因为 Microsoft.mshtmal.dll 这个 dll 是从 system32 文件夹下的 mshtml.tlb(COM 类型库文件)中导出的,因此我们只需要用 VS2008 自带的 TlbImp.exe COM 类型库导出工具将这个 tlb 文件再导一遍就可以了。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125800.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 什么是TCP粘包?怎么解决这个问题[通俗易懂]

    什么是TCP粘包?怎么解决这个问题[通俗易懂]在socket网络编程中,都是端到端通信,由客户端端口+服务端端口+客户端IP+服务端IP+传输协议组成的五元组可以明确的标识一条连接。在TCP的socket编程中,发送端和接收端都有成对的socket。发送端为了将多个发往接收端的包,更加高效的的发给接收端,于是采用了优化算法(Nagle算法),将多次间隔较小、数据量较小的数据,合并成一个数据量大的数据块,然后进行封包。那么这样一来,接收端就必须…

    2022年8月11日
    5
  • Matlab求分段函数的积分[通俗易懂]

    Matlab求分段函数的积分[通俗易懂](一)前言本文介绍一个使用Matlab进行求分段函数积分值的方法。首先介绍如何使用int()对连续函数进行积分的求解,然后介绍一个对分段函数进行求积分的例子。(二)使用Matlab求定积分Matlab中求积分的函数为int(),调用形式为int(func,’x’,a,b),其中func为被积函数,x为积分变量,[a,b]为被积区间。如int(x^2,’x’,1,2…

    2022年6月9日
    72
  • Axure导航二级菜单[通俗易懂]

    Axure导航二级菜单[通俗易懂]    效果:当鼠标移入或者单击“权限管理”时,“权限管理”填充色由蓝变为白,字体由白变成黑。同时,弹出两个子选项“账号管理”和“设备管理”,当鼠标移入子选项时,该子选项背景变为灰白色。当鼠标移出母选项和子选项时,弹框隐藏,同时母选项背景和字体颜色恢复原状。原型设计:(1)设置元件的选中状态(2)设置鼠标移入或移出该组件的事件为了更好设计逻辑,我们采用触发的方式,新…

    2022年5月18日
    41
  • 如何解压.bz2文件包

    如何解压.bz2文件包.bz2  解压1:bzip2-dFileName.bz2  解压2:bunzip2FileName.bz2  压缩:bzip2-zFileName  .tar.bz2  解压:tarjxvfFileName.tar.bz2或tar–bzipxvfFileName.tar.bz2  压缩:tarjcvfFileName.tar.bz2Dir…

    2022年6月6日
    65
  • springboot mysql事物_SpringBoot事务详细简介[通俗易懂]

    springboot mysql事物_SpringBoot事务详细简介[通俗易懂]重要概念自动提交模式对于mysql数据库,默认情况下,数据库处于自动提交模式。每一条语句处于一个单独的事务中,在这条语句执行完毕时,如果执行成功则隐式的提交事务,如果执行失败则隐式的回滚事务。对于正常的事务管理,是一组相关的操作处于一个事务之中,因此必须关闭数据库的自动提交模式,下面是查看方式:查看是否自动提交命令(ON表示开启自动提交,值为1,OFF表示关闭自动提交,值为0):showvari…

    2022年6月5日
    91
  • 阿里云搭建svn服务器_如何搭建家用云服务器

    阿里云搭建svn服务器_如何搭建家用云服务器最近买了华为云服务器(ubuntuserver14.04),准备玩玩云,本文就是记录一下如何在华为云上搭建SVN服务器,跟阿里云上搭建SVN服务器还是有点区别的。第一次登录或第一次用SSH远程登录,需要跟客服要文档。华为云的安全策略,第一次使用apache2服务,需要看如何修改安全策略,增加80端口的公网访问,80端口是Apache2服务的默认端口。修改安全策略帮助帮助(1)安装软件

    2022年10月17日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号