电脑操作系统:64位
软件:VS2022 (C# Windows 窗体控件库)框架framework 4.5
调用COM为WinCC软件的一个dll
调试有问题的代码部分为
using CCHMIRUNTIME;
———中间部分省略———
private void Button1_Click(object sender, EventArgs e)
{
HMIRuntime HMIRT = new HMIRuntime();
———省略———
}
(1)当目标平台为x64时进行调试,窗体是可以显示的,但是显示System.Runtime.InteropServices.COMException:“检索 COM 类工厂中 CLSID 为 {E9A43486-04B3-4367-AE5E-276B70AE00EB} 的组件失败,原因是出现以下错误: 80040154 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))。”
(2)于是我尝试把目标平台改为x86,再次调试,这时候窗体不显示,直接弹出错误System.BadImageFormatException:“未能加载文件或程序集“file:///C:\Users\Administrator\Desktop\report\report\obj\x86\Debug\report.dll”或它的某一个依赖项。试图加载格式不正确的程序。”
(3)尝试把引用的dll放到C:\Windows\System32和C:\Windows\SysWOW64用regsvr32注册,均显示注册成功,再用两个目标平台又尝试了一边,仍然和(1)、(2)一样的问题。