最近公司在做一个项目,要用到第三方的插件。Bkgnd.dll。然后用C#调用这个DLL插件。将插件注册成托管dll之后,在程序里引用并实例化 提示一个下面错误,
从网上查说是要注册。每次注册这个插件都是 提示
不知道什么原因。
也试了
[DllImport("Bkgnd.dll",CallingConvention=CallingConvention.ThisCall)]
来调用里面的函数.提示一样

哪位老大遇到这样的问题啊。这两天一直在弄这个东西,头疼死了。附上原DLL

解决方案 »

  1.   

    自己先顶一个。用到得DLL 可以到这里去下载http://download.csdn.net/detail/christ888/4939112
      

  2.   

    这根本就不是一个com dll。
      

  3.   

    他是不是还有其他关联的dll文件或exe文件,从提示看应该是还有其他关联文件,你找个查看dll的工具,看看都关联着哪些dll
      

  4.   

    关联的,我都查看过了,放在SYSTEM32下也没有用
      

  5.   

    这个DLL 确定是用C++写的,我用depends查看,我要调用的函数,都没有暴漏出来,只有3个DLLGetClassObject,DLLCanUnloadNow,DLLRegisterServer
      

  6.   

    看来,这是个com类库里。
    如果,这个类库使用dotnet平台类的语言编写(费C++类的com接口),那么注册方法不一样。
    打开Visual Studio 2008 命令提示 工具,在vs2008下的工具里。
    打开到你dll所在的路径。用一下命令注册。
    tlbexp xx.dll /out:xx.tlb
    regasm xx.dll /tlb:xx.tlb /codebase
      

  7.   

    tlbexp命令错误,提示该模块应该包含一个程序集清单