“在引用COM组件时,出现了无法嵌入互操作类型。。。”的错误

  这两天在做一个需要将wps文档转换成word文档的程序,在调用wps的com组件时项目编译是没有问题的,但当运行的时候却弹出了下面的错误提示:

从网上百度一番后,找到了正确的解决方法。

  先从Com组件中添加引用:

  选中引入的Com组件库,右键-> 属性:

  将“嵌入互操作类型”改为 False 选项:

重新编译,程序正常运行。

  由此,让我联想到了在前不久一个朋友在使用Office组件用来转换pdf文档时,出现的 “无法嵌入互操作类型。。。”的问题,记得当时他的处理方法是按照网上说的教程,设置程序获取最高的管理员权限,添加允许等操作来解决的,虽说最终程序是可以运行了,但配置起来还真是相当的麻烦呢。

  而正确的方法应该是这样的。调用Office文档时:(以下图片来源于网络)

  导入Com组件中的Office库:

  直接运行会报错,“无法嵌入互操作类型”等等之类的错误:

  打开 “属性” 对话框:

  将 “嵌入互操作类型” 设置为 False:

  何为 “嵌入互操作类型” ???

  1. ”嵌入互操作类型”中的嵌入就是引进、导入的意思,类似于c#中using,c中include的作用,目的是告诉编译器是否要把互操作类型引入。

  2. “互操作类型”实际是指一系列Com组件的程序集,是公共运行库中库文件,类似于编译好的类,接口等。

  3. “嵌入互操作类型”设定为true,实际上就是不引入互操作集(编译时候放弃Com程序集),仅编译用户代码的程序集。而设定为false的话,实际就是需要从互操作程序集中获取 COM 类型的类型信息。

参考:VS2010中出现无法嵌入互操作类型

时间: 2024-11-05 22:00:11

“在引用COM组件时,出现了无法嵌入互操作类型。。。”的错误的相关文章

[开发笔记]-“在引用COM组件时,出现了无法嵌入互操作类型。。。”的错误

这两天在做一个需要将wps文档转换成word文档的程序,在调用wps的com组件时项目编译是没有问题的,但当运行的时候却弹出了下面的错误提示: 从网上百度一番后,找到了正确的解决方法. 先从Com组件中添加引用: 选中引入的Com组件库,右键-> 属性: 将“嵌入互操作类型”改为 False 选项: 重新编译,程序正常运行. 由此,让我联想到了在前不久一个朋友在使用Office组件用来转换pdf文档时,出现的 “无法嵌入互操作类型...”的问题,记得当时他的处理方法是按照网上说的教程,设置程序获

检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失 败,原因是出现以下错误:80040154

检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失 败,原因是出现以下错误: 80040154 折腾了N个小时的问题,最终是通过这个ID去搜索未报错的机器的注册表,导出,再导入到报错的机器上,问题得到解决.原来是开发文档提示注册的ocx有误. 其他:只有服务器上安装了office序列才可以调用office的东西 其他问题相关: http://zhidao.baidu.com/question/532301026.htm

vs2010 office组件dll右键属性找不到”嵌入互操作类型“问题的解决

近期项目碰到个奇怪的问题.在项目中添加excel的引用,然后右键该引用,选择属性,竟然找不到”嵌入互操作类型“,因引用office组件时,需要将其”嵌入互操作类型“设为false,否则编译不通过.后来经过百度,才找到问题的解决方法. 问题: 解决方法1: 修改项目的目标框架为.net framework 4及以上. 解决方法2: 如果项目的目标框架必须为.net framework2.0,那可以在项目文件.csproj中修改. 用txt打开该项目文件, 这样便大工告成. 小菜一碟 2014-10

创建了对嵌入的互操作程序集间接引用,无法嵌入互操作类型

警告 1 由于存在对由程序集“c:\Program Files\Reference Assemblies\Microsoft\VSTO40\v4.0.Framework\Microsoft.Office.Tools.Excel.dll”创建的程序集的间接引用, 因此创建了对嵌入的互操作程序集“c:\Program Files\Reference Assemblies\Microsoft\VSTO40\v4.0.Framework\Microsoft.Office.Tools.Common.dll

C#引用COM对象,报错:《类型 *** 未定义构造函数, 无法嵌入互操作类型 *** 。请改用适用的接口》的解决办法。

错误信息: 1.类型“SQLDMO.BackupClass”未定义构造函数 2.无法嵌入互操作类型“SQLDMO.BackupClass”.请改用适用的接口. 代码如下:                 SQLDMO.Backup backup = new SQLDMO.BackupClass();                 SQLDMO.SQLServer sqlserver = new SQLDMO.SQLServerClass();                 sqlserver

uni-app 父组件引用子组件时怎么调用子组件的方法

1.写一个简单的子组件main/index.vue: <template> <view></view> </template> <script> export default { data(){ return {} }, methods:{ childMethod() { console.log('childMethod do...') } } } </script> <style> </style> 在子组件

2015.5.21 VS2010中引用Word组件后提示 类型“Microsoft.Office.Interop.Word.ApplicationClass”未定义构造函数 解决方法

wordApp = new Word.ApplicationClass();//这句在VS2005中没问题,在2010中会报错. 解决方法:在资源管理器 "引用"项的"Microsoft.Office.Interop.Word" 上点击鼠标右键,选择"属性",将属性中的"嵌入互操作类型"的值改为"false"即可.  这项在vs2005中没有

页面中使用多个element-ui upload上传组件时绑定对应元素

elemet-ui里提供的upload文件上传组件,功能很强大,能满足单独使用的需求,但是有时候会存在多次复用上传组件的需求,如下图的样子,这时候就出现了问题,页面上有多个上传组件时,要怎么操作呢? 之前在网上找到了一位大神的方法,修改源码,在回调函数中多加一个参数,但是这种方法在多人开发时不太适用,因为这要求所有人都要修改源码,这里附上大神的方法,大家可以酌情使用 首先在你下个包里面找到node_modules/element-ui/lib/element-ui.common.js 然后在里面

深拷贝&amp;浅拷贝&amp;引用计数&amp;写时拷贝

(1).浅拷贝: class String { public: String(const char* str="") :_str(new char[strlen(str)+1]) { strcpy(_str,str); } ~String() { if(NULL!=_str) { delete[] _str; _str=NULL; } } private: char* _str; }; int main() { String s1("hello"); String