我有一个用于 titan-FTP 的名为 srxCOM.dll 的 dll,这个 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 编写我的应用程序,还有什么我可以尝试的吗?
最佳答案
我最终使用了 titanFTP 提供的不同 dll。
我找到了这个 codeproject.com:
主要互操作程序集只能引用其他主要互操作程序集。如果您的程序集引用来自第三方 COM 类型库的类型,则您必须先从发布者处获得一个主互操作程序集,然后才能生成您的主互操作程序集。如果您是发布者,则必须在生成引用主互操作程序集之前为依赖类型库生成主互操作程序集。
查看下面的链接
关于c# - 运行时可调用包装类未注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48306539/