Подтвердить что ты не робот

Исключение инициализации типа

Я создал класс 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

Любая идея, почему я получаю это исключение и как его исправить?

Спасибо заранее.

4b9b3361

Ответ 1

TypeInitializationException (исключение, которое вы видите) генерируется всякий раз, когда статический конструктор генерирует исключение или когда вы пытаетесь получить доступ к класс, в котором статический конструктор выбрал исключение - его свойство InnerException - это свойство, содержащее деталь исключения, которое было на самом деле выбрано - это является исключением, которое вам нужно исследовать.

В этом случае с вашего снимка экрана проблема заключается в том, что DLL "opencv_core240.dll" не найден. Это может быть по ряду причин.

  • Не удалось найти DLL
  • Невозможно найти одну из зависимостей DLL
  • DLL находилась в неправильном формате изображения (32 бит, а не 64 бит)

Я бы посоветовал вам взглянуть на этот вопрос, чтобы узнать, помогут ли вам какие-либо предложения.

Ответ 2

Я решил проблему, переустановив MSVCRT 9.0 SP1 x86

Ответ 3

VS Project Properties Page

Проверка этого поля сделала трюк для меня. В разделе Проект → Свойства → Сборка (Основной/Запуск проекта)