2012-09-14 23 views
12

que creó la clase imageHolder:Tipo excepción de inicialización

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; } 
     } 
    } 

puedo crear instancia de la clase y inicializarlo, como esto:

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

En tiempo de ejecución i obtener esta excepción:

El inicializador de tipo para 'Emgu.CV.CvInvoke' lanzó una excepción.

enter image description here

Aquí es ventana Explorador de soluciones:

enter image description here

Cualquier idea de por qué me sale esta excepción y cómo puedo solucionarlo?

Gracias de antemano.

+2

Parece que no puede encontrar opencv_core240.dll; ¿Eso necesita estar en la misma carpeta? – zimdanen

+0

no es exactamente un duplicado de esto (ya que no hubo una respuesta aceptada) pero tal vez parte de la información sobre [esta otra pregunta] (http://stackoverflow.com/questions/10930610/opencv-unmanaged-dlls-not-found- asp-net) y las respuestas pueden funcionar para usted –

+1

Para reiterar y ampliar lo que dijo @zimdanen, el texto de InnerException indica que no pudo cargar las menciones de zimdanen de DLL. Consulte http://stackoverflow.com/questions/2066180/the-specified-module-could-not-be-found-0x8007007e para obtener una explicación. – akton

Respuesta

21

El TypeInitializationException (a excepción de que está viendo) es lanzada cada vez que un constructor estático produce una excepción, o cuando se intenta acceder a una clase donde el constructor estático produjo una excepción - su propiedad InnerException es la propiedad que contiene el detalle de la excepción que realmente se lanzó - esta es la excepción que necesita investigar.

En este caso, en la captura de pantalla el problema parece ser que no se pudo encontrar la DLL "opencv_core240.dll". Esto puede ser por varias razones

  • La DLL no se pudo encontrar
  • Una de las dependencias de la DLL no se pudo encontrar
  • La DLL estaba en el formato de imagen incorrecta (32 bits como opuesto a 64 bit)

Le sugiero que eche un vistazo al this question para ver si alguna de las sugerencias allí le ayuda.

1

VS Project Properties Page

Comprobación de este campo hizo el truco para mí. En Proyecto → Propiedades → Generar (proyecto principal/de inicio)

Cuestiones relacionadas