来源: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,问题得以解决。