我正在尝试使用我多年前在 VB6 中构建的名为 CP4DLL 的 ActiveX DLL 在 VS 2022 中构建 VB.NET Windows 窗体应用程序。
我在项目中包含了对 DLL 的引用,并且代码可以识别 DLL 中的对象、方法和属性,但是当我运行 VB.NET 代码时,它会生成以下消息:
“System.Runtime.InteropServices.COMException:'创建一个实例 具有 CLSID {
} 的 COM 组件 由于以下错误,从 IClassFactory 失败:59CA4977-912A-47C6-BAB7-D1B26C0D6ACC
800a0beb
。'”0x800A0BEB
我有一个 VB6 .EXE 应用程序,它使用该 DLL,当我将其安装到我的计算机上时,它运行良好。
我还需要在 VB.NET 项目中添加什么来解决这个问题?
我认为你的问题不能用这种方法解决。 Visual Studio 2022 不再与使用 VB6 编译的 32 位 DLL 兼容。 我遇到了同样的问题,我所能做的就是包装器通过 WebApi 公开功能。 另一方面,您仍然可以将 Visual Studio 2019 与旧版 32 位 DLL 结合使用。 我还有一台安装了 Windows 7 的虚拟机,以便运行 Visual Basic 6 来编译 32 位 DLL。 希望这对您有帮助。