最近由于公司系统要更换客户端打印机,同时也需要更改一下客户端的打印机ActiveX插件(该插件是在公司的B/S系统上使用),于是乎这个光荣而伟大的任务就交给我啦,查找资料、开始开发用了两天时间终于把这个插件写完了,在本机测试通过。后来提交插件安装包在其它机器上测试就不能通过啦,遇到的问题:
    开发这个ActiveX调用的是打印机(Brother打印机)提供的一个第三方DLL,通过调用这个DLL实现数据的打印,安装后在机器上测试时提示如下错误:
“检索 COM 类工厂中 CLSID 为 {B940C105-7F01-46FE-BF41-E040B9BDA83D} 的组件失败,原因是出现以下错误: 80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。”
   我查看了一下这个CLSID就是那个第三方的GUID,可是我在开发时已经选择把这个组件注册为COM组件,但是调用还是出现这个错误,各位高手、大侠、前辈,有没有遇到过此类问题,或知道如何解决请帮忙解答一下,小弟在此跪拜!!!c#ActiveXDLL

解决方案 »

  1.   


    可以详细说明一下吗,我直接用regsvr32 路径 提示不正确
      

  2.   

    这个COM组件注册问题我已经解决,但是接着而来的是另外一个问题,提示我的一个方法没有实例化,不知道是什么原因啊!
      

  3.   

    方法是一些组件问题,打包安装程序的时候需要反打印机的安装模块打包进去,然后还要在机器上安装MSXML(因为我解析数据的时候用到了XML操作),这样问题就解决啦。
    但是解决了上面问题,新的问题又出现啦,因为我安装时需要先安装微软的MSXML4.0+我的ActiveX插件,那么就涉及到把这两个安装包打包为一个Setup.exe安装文件,现在正在苦查资料中,用InstallShield添加多个安装文件,但是还没有实现,哪位大侠,前辈做过类似的多个安装包打包为一个安装包的项目,,给一下提示啊!