COM组件DLL引用时出现检索组件错误

前情提要:

  市面上有一套系统软件,其中某个功能的程序是使用COM组件开发的,我希望使用它的这个功能,所有我引用了他的COM组件DLL.

但是程序执行时出现了一个错误,错误如下图:

这个错误一般都是我们引用的COM组件没有注册引起的。但是当我使用regedit命令去注册组件时,总是无法注册报了一个错误

使用regsvr32.dll注册时出现这个问题。

我把这个程序拿到另一台电脑上使用时,没有报错,能够正常的运行,那台点脑安装了原版的程序。所以没有报这个错误。

因为单独注册dll没有成功,我只能采用这种安装原版程序的方式来使我的程序可以正常执行使用。

但是当我在我电脑上安装dll原版程序来完成组件注册的任务时,我运行程序时还是无法正常执行。

各中找原因

1.查找注册COM组件dll的方法,但是都无法进行注册。

2.安装原版程序,卸了装装了卸就是不行。

3.使用错误信息中的Guid在注册表中进行查找,发现能正常使用的电脑上的注册文件和不能使用的组测文件是同一个组测文件相同的。

在我快崩溃了的时候,在某个地方突然发现32位和64位程序使用。然后我查看一下我的程序,发现是x64的程序,不是x86也不是any CPU。我将程序属性设置位x86编译,再次运行时发现

程序可以正常使用了。

这里小伙伴们可能有疑问,那台可以使用的电脑上的程序不也是64位的,其实不是的,可以正常使用的电脑上的程序时any CPU编译的,后台我再自己机器上尝试解决问题时,将程序改为x64了。

所以当我在自己机器上注册好组件时,我的程序不满足32位的要求。

程序正常使用要满足两个条件:

1.通过安装原版程序进行dll组件注册

2.程序要能兼容32位(因为这个dll组件时32位的)虽然系统是64位的,但是我引用的dll要求32位。

原文地址:https://www.cnblogs.com/liuniublogs/p/9687197.html

时间: 2024-08-11 04:47:45

COM组件DLL引用时出现检索组件错误的相关文章

ASP.NET 日志组件LogNet.DLL 引用即可写入日志及读取日志

借助LogNet组件,以后查看站点日志,再也不用去服务器下载了 日志组件:LogNet.DLL ,引用即可使用 写入方法: 1.LogNet.Log.WriteLog("日志标题", "日志内容"); 2.LogNet.Log.WriteLog("日志标题",new Exception()); 日志内容同时写入年月日三份文本文件中 站点读取方法: 复制 ReadLogNet.aspx 文件到站点,WebForm和MVC站点都一样,文件名也可自定义

.Net调用Office Com组件的原理及问题检索com类工厂组件检索 COM 类工厂中 CLSID 为 {XXX} 的组件失败

我是在本地32位操作系统+vs2010+office2007做创建并下载Excel,ppt文件的操作没有问题,发布到64位系统的服务器上报错,最开始报错:: 1:Retrieving the COM class factory for component with CLSID {91493441-5A91-11CF-8700-00AA0060263B} failed due to the following error: 80040154 没有注册类 (Exception from HRESUL

VS报:"dll标记为系统必备组件,必须对其进行强签名"错误

问题: VS生成程序时,报“要将程序集“XX.dll”标记为系统必备组件,必须对其进行强签名.”错误. 解决方法: 1)在报错的解决方案中找到一个可以发布的项目(引用该XX.dll的项目未必可以发布): 2)右击该项目,选择“属性”: 3)选择“发布”: 4)点击“应用程序文件”按钮: 5)找到该“XX.dll”,将发布状态有“系统必备”改为“包括(自动)”: 6)再次运行成功. 参考: 1. 首先说明一下:X是某程序集的名称,相当于数学中的未知数X. 看到这样的提示,开始我以为是把程序集X的发

第三方组件引用另一个第三方组件的悲剧

首先我先声明,我的摘要是故意这样写的,如果你是因为看了摘要才进来的,请让我大笑三声:哈哈哈~~ 不过既然你已经进来了,不妨继续往下看看~~ 事件背景 话说最近换工作了,刚接手的项目的项目中遇到一个棘手的事情;一个第三方组件中使用了老版的log4net(1.2.10),另一个第三方组件中使用了新版的log4net(1.2.13) 这下问题来了 当我自己的项目中需要同时使用这2个第三方组件的时候,他们各自引用的log4net版本是不一致的 所以,不管我引用的是哪个版本的log4net,最终的效果是另

Microsoft.Office.Interop.Excel 放到B/S客户端失败问题 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问。

检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问. (异常来自 HRESULT:0x80070005 (E_ACCESSDENIED)). 解决办法:(转) http://blog.csdn.net/wzhibin/article/details/1816690 用.net写了一个相关Excel的B/S的程序,部署到2003企业版的服务器上遇到这个错误:检索 COM

检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问

今天做了一个Word导出功能,在使用WordAPI时,给出了"检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问"错误 解决方案如下:      1.点击Win +R键输入comexp.msc -32(如果按钮的Word是64位的输入dcomcnfg)回车       2.以此找到"组件服务---"计算机"---"我的电

vue组件的引用:

本文是基于vue-cli脚手架的基础上对vue组件的引用做简单介绍,关于vue-cli脚手架,请见:vue脚手架的安装流程(vue-cli). 在src文件夹下创建components文件夹,并在其下面创建Home.vue和List.vue两个文件: 在App.vue中引入Home.vue和List.vue两个组件: 这样Home.vue和List.vue两个组件就被引入到App.vue组件里面了,效果图如下: 注意:引入组件的component是要带s的,而配置路由的component不要带s

Java实现HMacMD5加密,用于淘宝客JS 组件 API 调用时生成 sign 的签名

原文:Java实现HMacMD5加密,用于淘宝客JS 组件 API 调用时生成 sign 的签名 源代码下载地址:http://www.zuidaima.com/share/1550463397874688.htm HMacMD5 加密纯 Java 实现,用于淘宝客 JS 组件 API 调用时生成 sign 的签名 另外:给大家贴一段淘宝客组件 API (JS API) 调用时,生成签名的核心代码. 另外:从事淘宝客开发的童鞋,碰到啥问题可以找我交流!!! String timestamp =

微信小程序公共组件的引用与控制

思路: 1.在组件wxml文件里实现布局.数据绑定.事件绑定: 2.组件js文件里定义事件,并将文件所有内容作为一个对象export出去:3.在引用的文件引入组件(方式有两种,一个是用include引入,一个是import引入,详情:https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/import.html); 4.数据传递.在引用文件对应的js里定义要传递的数据,数据名称与组件wxml文件里的一致: 5.函数映射.在引用文