1

我在将 COM DLL 合并到 C#.NET 程序中时遇到了一些问题。DLL 是由第三方提供给我的。它是在 VB6 中完成的。目前,这是我收到的错误。

System.Runtime.InteropServices.COMException 未处理。HResult=-2147221164 消息=检索具有 CLSID {46F5C9EE-D750-4740-AFBD-682F1E097776} 的组件的 COM 类工厂失败,原因是以下错误:80040154 未注册类(HRESULT 异常:0x80040154 (REGDB_E_CLASSNOTREG))。

当我尝试从 DLL 文件中的类之一创建新对象时,它会引发异常。

我尝试使用 regsvr32.exe 注册 DLL 并使用 tlbimp.exe 创建另一个 DLL(它有效但给了我大量警告)。每次我尝试调试我的程序时,我都会遇到某种异常。

我应该放弃并在 VB6 中执行此操作吗?我真的不想...

4

2 回答 2

0

好的,我解决了这个问题。COM DLL 允许我访问的第三方软件需要将 USB 加密狗插入计算机,否则它将只能在试用模式下运行。这禁止我访问 DLL 功能。

于 2013-04-30T23:27:53.420 回答
0

您缺少第三方 VB6 DLL 所依赖的 DLL。这可能是另一个 VB6 DLL 或另一个第三方引用(或较低级别的 DLL,例如 VB 运行时)。

解决您的问题的最佳方法是询问第三方提供商需要哪些 DLL 作为依赖项。作为 VB6 开发人员,他们应该能够轻松地回答问题,而您必须运行诸如依赖遍历器之类的东西,这很容易导致您走错路。

于 2013-04-12T02:55:18.383 回答