输入初始化异常

时间:2012-09-14 13:05:48

标签: 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
    {
        get
        { return imagePath; }
        set
        { imagePath = value; }
    }
}

我创建了类的实例并将其初始化,如下所示:

private ImageHolder originalImageHolder;
originalImageHolder = new ImageHolder(openFileDialog.FileName);

在运行时我得到这个例外:

'Emgu.CV.CvInvoke'的类型初始化程序引发了异常。

enter image description here

这是Solution Explorer窗口:

enter image description here

知道为什么我会得到这个例外以及如何解决它?

提前谢谢。

3 个答案:

答案 0 :(得分:24)

每当静态构造函数抛出异常时,或者每当您尝试访问静态构造函数引发异常的类时,都会抛出TypeInitializationException (您看到的异常) - 它的InnerException属性是包含实际抛出的异常细节的属性 - 这是您需要调查的例外。

在这种情况下,从您的屏幕截图中看,问题似乎是找不到DLL“opencv_core240.dll”。这可能有很多原因

  • 无法找到DLL
  • 无法找到DLL的一个依赖项
  • DLL的图像格式不正确(32位而不是64位)

我建议您查看this question,看看有没有任何建议可以帮助您。

答案 1 :(得分:2)

VS Project Properties Page

检查此字段对我来说很有用。在项目→属性→构建(主/启动项目)

答案 2 :(得分:1)

我通过重新安装 MSVCRT 9.0 SP1 x86

解决了这个问题