开发一些第三方的接口或者功能时..有时会需要接入对方提供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即可解决。
修改之后..程序神奇的跑了起来..哈哈.