来源: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,问题得以解决。
![image image](https://www.codeprj.com/image/aHR0cDovL3MyLnNpbmFpbWcuY24vbWlkZGxlLzcwOTU0ODIwNGQ2YmRlYjBjZWE3MSZhbXA7Njkw.png)
|