运行时可调用包装类未注册

时间:2018-01-17 17:12:47

标签: c# dll vb6 rcw

我有一个名为srxCOM.dll的dll for titan-FTP,这个dll是为VB6制作的。我想在Visual Studio .NET中使用dll,所以我使用tblimp创建了一个运行时可调用包装器并将其命名为srxCOMnet.dll。我已经在我的VS项目中添加了dll作为参考,并且可以访问其中的函数。在构建项目时,我收到此错误,

错误:由于以下错误,CLSID {A82C6CF0-7B42-4ABD-AECB-987E298A41AF}失败:80040154未注册类(HRESULT异常:0x80040154(REGDB_E_CLASSNOTREG))。

经过一些研究后我尝试过:

  • 注册成功的srxCOM.dll。
  • 注册失败的RCW srxCOMnet.dll。
  • 将构建选项从任何CPU更改为x86。

我不想在VB6中编写我的应用程序,还有什么我可以尝试的吗?

1 个答案:

答案 0 :(得分:0)

我最终使用了titanFTP提供的另一个dll。

我找到了这个codeproject.com:

主互操作程序集只能引用其他主互操作程序集。如果程序集引用第三方COM类型库中的类型,则必须先从发布者获取主interop程序集,然后才能生成主interop程序集。如果您是发布者,则必须在生成引用主互操作程序集之前为依赖类型库生成主互操作程序集。

请参阅以下链接

codeproject Using-Unmanaged-VB-Code-in-NET