C# 类型初始化异常
我创建了imageHolder类:C# 类型初始化异常,c#,.net,opencv,constructor,emgucv,C#,.net,Opencv,Constructor,Emgucv,我创建了imageHolder类: public class ImageHolder : Image<Bgr, Byte> { private String imagePath; public ImageHolder(String path):base(path) { this.imagePath = path; } public String imgPathProperty
public class ImageHolder : Image<Bgr, Byte>
{
private String imagePath;
public ImageHolder(String path):base(path)
{
this.imagePath = path;
}
public String imgPathProperty
{
get
{ return imagePath; }
set
{ imagePath = value; }
}
}
在运行时,我得到以下异常:
Emgu.CV.CvInvoke的类型初始值设定项引发异常。
以下是解决方案资源管理器窗口:
知道我为什么会遇到这个异常吗?我该如何修复它
提前感谢您。每当静态构造函数抛出异常时,就会抛出(您看到的异常),或者,当您试图访问静态构造函数引发异常的类时(其属性是包含实际引发的异常详细信息的属性),这就是您需要调查的异常
在本例中,从您的屏幕截图来看,问题似乎是无法找到DLL“opencv_core240.DLL”。这可能有很多原因
- 找不到DLL
- 找不到DLL的一个依赖项
- DLL的图像格式不正确(32位而不是64位)
我建议您看看上面的建议是否对您有帮助。我通过重新安装解决了这个问题。
检查这个字段对我起了作用。在项目下→ 性质→ 构建(主/启动项目)似乎找不到opencv_core240.dll;这需要在同一个文件夹中吗?不完全是这个的副本(因为没有可接受的答案),但可能关于和答案的一些信息对您有用。要重申和扩展@zimdanen所说的内容,InnerException文本声明无法加载zimdanen提到的DLL。请参阅以获得解释。是的,这也解决了我的问题。原来我的项目需要的DLL只能在32位中运行!哦!
private ImageHolder originalImageHolder;
originalImageHolder = new ImageHolder(openFileDialog.FileName);