检索 COM 类工厂中 CLSID 为 {00853A19-BD51-419B-9269-2DABE57EB61F} 的组件时失败,原因是出现以下错误: 800401f9。
代码运行时 出现了这个异常   百度后说是com组件里面没有注册Dll  然后我又去注册这个Dll出现了这个Dll没有找到dllregisterserver输入点

解决方案 »

  1.   

    下载一个dll函数查看器 看看这个dll中是否有dllregisterserver这个函数  应该是函数名写错了
      

  2.   

    我是用的 Regsvr32 注册的Dll
      Dll的名字是Interop.zkemkeeper.dll  
      

  3.   

    是用Regsvr32 注册的dll   但是在调用这个dll中的函数的时候总要知道有什么函数吧   不知道有什么函数 注册了也没用的啊 
      

  4.   

    托管的要使用 regasm 来注册.
      

  5.   

    dllregisterserver这个函数应该是通用的吧 还是每个Dll都有一个这个函数
      

  6.   

    dllregisterserver 是传统组件需要导出的函数, 而托管的组件入口不是 dll 本身, 而是 mscoree.dll
      

  7.   

    mscoree.dll 我看网上说 把他换个名字就可以解决这个问题了吧 还有就是 C#里面的DLL是不是不需要 进行Regsvr32的注册
      

  8.   

    我的文件类型是程序集 不是ActiveX的
      

  9.   

    嗯, 你试试 regasm 哦, .net 组件要让 com 用, 有个转折的路线
      

  10.   

    regasm E:\attendenceProject\attendence\bin\Debug\Interop.zkemkeeper.dll这样写?
      

  11.   

    嗯, 另外用于 com 环境的 程序集 dll 有写法上的事项, comvisible 之类的
      

  12.   

    这样写不行啊 regasm  这不是一个命令啊  系统默认他是一个文件路径
      

  13.   

    C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe
      

  14.   

    编译的时候是不是要给它COM注册
      

  15.   

    你写的是基于COM的组件么,一般用.NET写的程序集都不是基于COM得,你用Regsvr32当然不会成功,因为.net程序集不依赖注册表,不需要你使用regsvr32注册到注册表。