无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Wor
2013-12-22 16:55
573 查看
无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。此操作失败的原因是对 IID 为“{00020970-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 找不到 。 (异常来自 HRESULT:0x80030002 (STG_E_FILENOTFOUND))。
上次是 HRESULT:0x80004002(E_NOINTERFACE),修复了一下office变成如上所示。
出现原因:可能是安装office时安装过不同版本造成的。
本人安装的是office 2003,并安装过office2007的兼容包,也安装过office visio 2007
解决办法:
在注册表中找到:HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.6 删除之就可以了。
因为我用的是office 2003对应的是1.5,所以删除1.6
office 2007对应的是1.6,所以要根据情况判断。(我的是安装了2007之后有安装了2010,10可以,07不可以,我后来卸载掉10,用07版测试发现该注册表项下1.7还在,所以删除掉1.7,07版就正常了)
后记:
一般来说,一个COM对象在提供的时候,通常还会提供一个类型库,在其中定义了COM对象的所有方法名称、参数名称、属性名称等等信息。我们要做的就是从类型库中取出这些信息。当然,某些只供C++程序员使用的COM对象没有类型库,而代之以C++的头文件和/或idl文件,对这种情况,一般没有办法在程序中枚举出对象的方法属性:毕竟去找C++头文件不太现实,何况在非开发环境下,根本就没有头文件的说。
在一般情况下,COM对象的TypeLib信息存储在注册表中:在HK_CLASSROOT\CLSID\{ClassID}\的注册表项下,有一个名为TypeLib的子项,其中定义了这个COM对象类型库的ID;而在HK_CLASSROOT\TypeLib 注册表项下,列举了系统中所有TypeLib。
PS:word兼容性真不好搞,目前也没有一套完美的解决方案,希望大牛指导。
转自:点击打开链接
上次是 HRESULT:0x80004002(E_NOINTERFACE),修复了一下office变成如上所示。
出现原因:可能是安装office时安装过不同版本造成的。
本人安装的是office 2003,并安装过office2007的兼容包,也安装过office visio 2007
解决办法:
在注册表中找到:HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.6 删除之就可以了。
因为我用的是office 2003对应的是1.5,所以删除1.6
office 2007对应的是1.6,所以要根据情况判断。(我的是安装了2007之后有安装了2010,10可以,07不可以,我后来卸载掉10,用07版测试发现该注册表项下1.7还在,所以删除掉1.7,07版就正常了)
后记:
一般来说,一个COM对象在提供的时候,通常还会提供一个类型库,在其中定义了COM对象的所有方法名称、参数名称、属性名称等等信息。我们要做的就是从类型库中取出这些信息。当然,某些只供C++程序员使用的COM对象没有类型库,而代之以C++的头文件和/或idl文件,对这种情况,一般没有办法在程序中枚举出对象的方法属性:毕竟去找C++头文件不太现实,何况在非开发环境下,根本就没有头文件的说。
在一般情况下,COM对象的TypeLib信息存储在注册表中:在HK_CLASSROOT\CLSID\{ClassID}\的注册表项下,有一个名为TypeLib的子项,其中定义了这个COM对象类型库的ID;而在HK_CLASSROOT\TypeLib 注册表项下,列举了系统中所有TypeLib。
PS:word兼容性真不好搞,目前也没有一套完美的解决方案,希望大牛指导。
转自:点击打开链接
相关文章推荐
- Android Scroller的理解
- 京JS 2013 - A two-day conference in Beijing for the JavaScript and Node.js community
- 【译】Experienced programmers but new to Objective-C(一)
- Java基础之处理事件——applet中语义事件的处理(Lottery 1)
- USB gadget: mass_storage's android layer
- 安卓开发笔记
- objective-c中实例变量的写法
- android BitmapFactory.decodeFile out of memory 崩溃
- iOS应用开发最佳实践:编写高质量的Objective-C代码
- 用NDKr9编译最新ffmpeg2.0.1(ffmpeg2.0.2)到android平台
- 简网APP工场-服务介绍
- Android中的AsyncTask
- Android ANR 分析
- Android 监听粘贴
- Android 内存泄露 案例分析
- cocos2dx2.2.1的windows下android环境搭建
- 46个IOS免豆资料下载
- android内存溢出的解决方法
- 为Android加入busybox工具
- cocos2d-x & CocoStudio UI使用