我在将COM DLL合并到C#.NET程序时遇到了一些问题。 DLL是由第三方提供给我的。它是在VB6中完成的。目前,这是我收到的错误。
System.Runtime.InteropServices.COMException未处理。 HResult = -2147221164 Message =正在检索COM类工厂 CLSID {46F5C9EE-D750-4740-AFBD-682F1E097776}组件失败 由于以下错误:80040154类未注册(例外 来自HRESULT:0x80040154(REGDB_E_CLASSNOTREG))。
当我尝试从DLL文件中的一个类创建一个新对象时抛出异常。
我尝试使用regsvr32.exe注册DLL并使用tlbimp.exe创建另一个DLL(虽然有效,但却给了我很多警告)。每次我尝试调试我的程序时,都会遇到某种异常。
我应该放弃并在VB6中执行此操作吗?我真的不想......
答案 0 :(得分:0)
您缺少第三方VB6 DLL所依赖的DLL。这可能是另一个VB6 DLL或另一个第三方引用(或更低级别的DLL,如VB运行时)。
解决问题的最佳方法是向第三方提供商询问哪些DLL是必需的依赖项。作为一名VB6开发人员,他们应该能够轻松地回答这个问题,而不必运行像依赖者walker这样的东西,这很容易导致你走错路。
答案 1 :(得分:0)
好的,我解决了这个问题。 COM DLL允许我访问的第三方软件需要将USB加密狗插入计算机,否则它将仅以试用模式运行。这禁止我访问DLL功能。