13

我创建了 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' 的类型初始化程序引发了异常。

在此处输入图像描述

这是解决方案资源管理器窗口:

在此处输入图像描述

知道为什么我会得到这个异常,我该如何解决?

先感谢您。

4

3 回答 3

25

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

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

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

我建议你看看这个问题,看看那里的任何建议是否对你有帮助。

于 2012-09-14T13:16:37.723 回答
2

VS 项目属性页

检查这个字段对我有用。在项目→属性→构建(主/启动项目)

于 2014-10-08T02:42:11.640 回答
1

我通过重新安装MSVCRT 9.0 SP1 x86解决了这个问题

于 2012-09-16T22:08:35.737 回答