注册Com组件..

开发一些第三方的接口或者功能时..有时会需要接入对方提供Com组件..是一个dll文件..

这个文件会在你的程序中引用..

比如一个CMBChina.dll文件..这是招商银行的支付开发时必备的..

 

下面我们就以这个为例来说一说..

 

他们提供的Demo里..有一个写好的Vbs文件..正常情况下只要 "以管理员身份运行"  就可以完成注册了..

但是本人的电脑是Win8  .. 右键选项里根本就没有这一项..

没办法玩自动..只有手动了..

 

在开始菜单里找到系统工具的  命令提示符  右键  以管理员身份运行

打开窗口是这样的..注意:  是<管理员:命令提示符>

这个时候我们就可以开始注册了..但是有个问题需要注意..

要注册的Dll文件应该放在英文的文件夹中..不应该出现中文路径..

开始注册:

普通的32位注册就可以直接输入  regSvr32 你的路径

例如:

确定之后,会提示成功注册!!

 

如果是64位的,则需要指向到一个固定的目录才能正确注册..

前边的步骤都是一样的..

打开命令提示工具之后..先输入  CD C:\Windows\SysWOW64\

目录会转至 C:\Windows\SysWow64

然后输入跟前边注册一样的命令 regSvr32 你的路径

确定..提示成功!!

到了这里..组件的注册就完成了..

 

但是新的问题来了..

招商银行的Demo依然会报错..

检索 COM 类工厂中 CLSID 为 {820280E0-8ADA-4582-A1D9-960A83CE8BB5} 的组件时失败,原因是出现以下错误: 80040154

这是为什么呢..

[转]检索 COM 类工厂中 CLSID 为 { } 的组件时失败,原因是出现以下错误: 80040154。

 

检索 COM 类工厂中 CLSID 为 {XXXX-XXXX-XXX-XXXXX-XXX} 的组件时失败,原因是出现以下错误: 80040154。

如以上问题出现,多半是因为COM控件未在目标机器上面注册造成的
解决方法:
Resvr32 .net中引用控件的名称
如果注册成功,问题不在出现

但是如果是在x64位的系统中,即使控件注册成功,错误依照提示,是因为大多数第三方写的COM控件,只支持32位的系统,

在VS中找到引用控件所在的项目--〉属性--〉生成--〉常规---〉目标平台---〉选择X86即可解决。

 

修改之后..程序神奇的跑了起来..哈哈.

posted @ 2015-05-20 12:52  代码工人有力量  阅读(18833)  评论(0编辑  收藏  举报