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

标签 c# dll vb6 rcw

我有一个用于 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 类型库的类型,则您必须先从发布者处获得一个主互操作程序集,然后才能生成您的主互操作程序集。如果您是发布者,则必须在生成引用主互操作程序集之前为依赖类型库生成主互操作程序集。

查看下面的链接

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

关于c# - 运行时可调用包装类未注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48306539/

相关文章:

C# 看不到mysql数据库

python - 使用pytorch出现DLL文件错误

winapi - 如何使用 Vb6 中的 SHGetKnownFolderPath 函数

c++ - 有没有可靠的方法可以在没有电子邮件客户端的情况下实现电子邮件功能?

c# - Mimekit/mailkit 下载邮件正文?

c# - 将名为 'other' 的项目保留在我的订购列表的底部

c# - 混合组和用户的 asp.net mvc [Authorize()] 属性

c++ - OpenSSL RSA 库抛出异常

c# - "Assembly Same Simple Name already been imported"错误

c# - WCF 服务应用程序 - 使用 C++ 对象调用导致 Visual Basic 6.0 DLL 文件挂起