Win8 x64环境下VS2010 C#工程运行报错:没有注册类 (异常来自 HRESULT:0x80040154

时间:2023-03-09 00:26:30
Win8 x64环境下VS2010 C#工程运行报错:没有注册类 (异常来自 HRESULT:0x80040154

来源:http://blog.sina.com.cn/s/blog_7095482001019c2v.html

问题描述:

在Win8 x64环境下,VS2010的C#工程中引用了COM组件(Active X控件,且已正确注册),可是一运行工程就会报如下异常错误:

未处理 System.Runtime.InteropServices.COMException
  Message=没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG))
  Source=System.Windows.Forms
  ErrorCode=-2147221164
  StackTrace:
       在 System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid& clsid, Object punkOuter, Int32 context, Guid& iid)
       在 System.Windows.Forms.AxHost.CreateWithoutLicense(Guid clsid)
       在 System.Windows.Forms.AxHost.CreateWithLicense(String license, Guid clsid)
       在 System.Windows.Forms.AxHost.CreateInstanceCore(Guid clsid)
       在 System.Windows.Forms.AxHost.CreateInstance()
       在 System.Windows.Forms.AxHost.GetOcxCreate()
       在 System.Windows.Forms.AxHost.TransitionUpTo(Int32 state)
       在 System.Windows.Forms.AxHost.CreateHandle()
       在 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
       在 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
       在 System.Windows.Forms.AxHost.EndInit()
       在 ORI.GTJDA.ImageProcessingControl.ImageViewControl.InitializeComponent()

解决办法:

造成上述错误的罪魁祸首就是工程文件“属性--生成”中的目标平台造成的,如下图,如果选择Any CPU或者x64就会出现上述问题,将它设置为x86,问题得以解决。

Win8 x64环境下VS2010 C#工程运行报错:没有注册类 (异常来自 HRESULT:0x80040154