我因为机器配置太低,所以就装了SharpDevelop2.1.0.2429,居然无法引用com中的Microsoft HTML Object Library(mshtml.tlb),添加引用SharpDevelop就死掉。
而同样的系统配置(干净的xpsp3 + .NET Framework 2.0)装VS2005就没问题。
我试了SharpDevelop_3.2.0.5777 + .NET Framework 3.5也不行。
C#2005中文速成版同样不行。
有人遇到同样的问题吗?这是怎么回事呢?
而同样的系统配置(干净的xpsp3 + .NET Framework 2.0)装VS2005就没问题。
我试了SharpDevelop_3.2.0.5777 + .NET Framework 3.5也不行。
C#2005中文速成版同样不行。
有人遇到同样的问题吗?这是怎么回事呢?
从其他正常的机器上编译好这个项目放到我的机器上也不能运行。
在安装了VS2005的机器上有:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Microsoft.mshtml.dll
复制到本机相应位置或项目里引用此dll就可以了
但是这不是com组件,我是在com项目里用作BHO插件,编译到是没有问题,运行时提示如下:
错误:无法将类型为“System.__ComObject”的com对象强制转换为类类型“mshtml.HTMLDocumentClass”。进入clr且不支持IProvideClassInfo或没有注册任何互操作程序集的com组件都将包装在__ComObject类型中。这种类型的实例不能强制转换为任何其他类;不过,只要基础com组件支持接口IID的QueryInterface调用,就能将这些实例强制转换为接口。
Microsoft Office 11.0 Object LibrarySharpDevelop should do the same.
mshtml网上也有很多遇到麻烦的,我还没找到解决方法
这个问题解决了,引用Microsoft.mshtml,把HTMLDocumentClass改成IHTMLDocument2就可以了。
使用mshtml时全部用I开头的:IHTMLWindow2、IHTMLDocument2、IHTMLElement、IHTMLFormElement等等。
SharpDevelop和C#2005中文速成版还是不能引用com组件Microsoft HTML Object Library(mshtml.tlb),所以程序里必须要带一个约8M的Microsoft.mshtml.dll。
期待高手来解决这个问题!