2011-02-26 18 views
15

Estoy intentando ejecutar una aplicación a través OpenCVMicrosoft Visual C++ 2010 Express, y obtener el siguiente mensaje:C++ - no puede iniciar correctamente (0xc0150002)

enter image description here

¿Cómo puedo solucionar este problema?

Gracias.

+0

¿Se colapsó el programa en la computadora de desarrollo con este mensaje o en otra computadora? – Fox32

+0

¿Alguno de estos ayuda? http://social.msdn.microsoft.com/Forums/en/Vsexpressvc/thread/fd4be16f-35b7-42c5-9f95-498870599d1e – Anonymous

+0

@ Fox32. En la computadora de desarrollo – Simplicity

Respuesta

1

Supongo que es una ventana de Vista! A menudo tengo esto cuando intento portar un programa de DirectX desde XPsp3 a Vista.

Es un problema de .dll. El OpenCV runtime.dll llamará a un system.dll que ya no se enviará Vista, por lo que desafortunadamente tendrá que buscar un poco para encontrar qué sistema.dll está tratando de encontrar. (System.dll podría ser vc2010 o Vista)

Este error también es causado por la instalación incorrecta de .dlls (es decir, no el despliegue de) hth Feliz caza

+0

Estoy usando 'Windows 7'. Es similar? Me refiero a la solución – Simplicity

+0

@ user588855 El número de error es el mismo en XP, en mi caso solo se trataba de conseguir que el cliente actualizara su biblioteca de DirectX. El enlace de Latanius al caminante de dependencia parece un buen lugar para una mayor investigación. HTH – Brandrew

11

Estoy de acuerdo con Brandrew, el problema es más probable causado por algunos dlls faltantes que no se pueden encontrar ni en la ruta del sistema ni en la carpeta donde está el ejecutable. Trate de poner los siguientes archivos DLL cerca del ejecutable:

  • el estudio visual C++ en tiempo de ejecución (en VS2008, que se podrían encontrar en lugares como C:. \ Archivos de programa \ Microsoft Visual Studio 9.0 \ VC \ Redist \ x86) Incluir los 3 archivos DLL así como el archivo de manifiesto.
  • los cuatro dlls OpenCV (cv210.dll, cvaux210.dll, cxcore210.dll y highgui210.dll, o los de su versión OpenCV HAS)
  • si aún así no funciona, pruebe la depuración VS tiempo de ejecución (ejecutables compilado de "depuración" utilizar un conjunto diferente de DLL, llamado algo así como msvcrt9d.dll, parte importante es la "d")

Alternativamente, intente cargar el archivo ejecutable en Dependency Walker (http://www.dependencywalker.com/), se debe señalar los dlls faltantes para ti.

1

Recibí este error al intentar ejecutar el archivo de solución de mi amigo por visual studio 2010 después de convertirlo a la versión 2010. La solución es fácil, creo un proyecto nuevo, hago clic con el botón derecho en la solución para agregar el archivo .cpp y .h existente del proyecto de mi amigo. Entonces funciona

0

Incluso me enfrentaba mismo error, me fijo después ... dos cosas que hay que mirar en

  1. Si la ruta del sistema está configurado correctamente en las variables de entorno
  2. Compruebe los preprocesadores en Propiedades del proyecto-> c/C++ -> Preprocesadores. Compruebe si ha incluido _CONSOLE, esto me estaba causando un error. Para algunas aplicaciones necesita incluir WIN32;_WINDOWS;_CONSOLE;_DEBUG;QT_DLL;QT_GUI_LIB;QT_NETWORK_LIB;QT_CORE_LIB;COIN_DLL;SOQT_DLL;QT_DEBUG;

Recibí este error mientras estaba trabajando en la aplicación coin3D.

0

Me encontré con ese problema. Visual Studio 2008 dijo claramente: el problema fue causado por libtiff.dll. No puede ser cargado por algún reasom, causado por su manifiesto (como una cuestión de hecho, este dll no tiene ningún manifiesto). Lo arreglé, cuando eliminé libtiff.dll de mi proyecto (¡pero al mismo tiempo perdí la capacidad de abrir TIFF comprimidos!).Recopilé la dll antes mencionada, pero el problema aún persiste. Es interesante que en mi propia máquina no tengo ese error. Otros tres comps se negaron a cargar mi programa. ¡¡¡Atención!!! Aquí http://www.error-repair-tools.com/ppc/error.php?t=0xc0150002 un sabio escribió que este error fue causado por un problema con el registro y ofrece una herramienta de reparación. Tengo una suposición sólida de que esta "herramienta de reparación" instalará algo de software malicioso en tu comp.

0

Es porque hay un archivo DLL que su programa no encuentra o no puede encontrar.

En su caso, creo que le faltan las dlls openCV. Puede encontrarlos en el directorio "compilar" que viene con CV abierto. Si está utilizando VS2010 y compilando un programa x86, puede ubicar sus dlls aquí en "opencv \ build \ x86 \ vc10 \ bin". Simplemente copie todos estos archivos en sus carpetas de depuración y liberación, y debería resolver sus problemas.

En general se puede resolver este problema mediante el siguiente procedimiento:

  1. Descargar Dependency Walker desde aquí: http://www.dependencywalker.com/
  2. Cargando el archivo .exe en Dependency Walker (bajo su depuración proyectos o Release carpeta), en su caso esto sería DisplayImage.exe
  3. Busque las DLL que faltan, están dañadas o son para la arquitectura incorrecta (es decir, x64 en lugar de x86). Estas se resaltarán en rojo.
  4. Para cada DLL que falta, copie en sus carpetas Debug o Release con su .exe, o instale el software requerido, o agregue la ruta a las DLL a sus variables de entorno (Win + Pause -> Advanced System Settings - > Variables de entorno)

Recuerde que deberá tener estos archivos DLL en el mismo directorio que su .exe. Si copia el archivo .exe de la carpeta Release en otro lugar, necesitará los archivos DLL copiados con el .exe también. Para la portabilidad tiendo a probar y tener una máquina virtual de prueba con una instalación limpia de Windows (sin actualizaciones ni programas instalados), y camino por las dependencias usando Dependency Walker, uno por uno, hasta que el programa se ejecuta felizmente.

Esto es un problema común. También vea estas preguntas:

Can't run a vc++, error code 0xc0150002

The application was unable to start (0xc0150002) with libcurl C++ Windows 7 VS 2010

0xc0150002 Error when trying to run VC++ libcurl

The application was unable to start correctly 0xc150002

The application was unable to start correctly (0*0150002) - OpenCv

buena suerte!

1

Simplemente ejecute el archivo .exe en el agente de dependencia (http://dependencywalker.com/) y le indicará los archivos dll que faltan y descargue esos dll (www.dll-files.com) y pegue en el c: windows: system32 y la carpeta como su .exe e incluso proporcionan la ruta de esos dll en la variable de ruta.

0

Aquí está mi solución para este error:

(The Application was unable to start correctly (OXO15OOO20).Click to close the application).

  1. En el menú Inicio, en Herramientas administrativas y, a continuación, haga clic en Windows Server.

  2. Haga clic en Archivo, haga clic en Opción, y luego en el disco a presión de limpieza de Eliminar archivos y, a continuación, pulse OK, y borrar hasta que llega a 0 byete

No se preocupe de él simplemente se elimina la cantidad de espacio de disco en su computadora.

0

En nuestro caso (al lado de intentar Dependency Walker) era un archivo de manifiesto defectuoso, mezclando 64 bits y 32 bits. Usamos dos archivos adicionales mientras se ejecuta en modo de depuración: dbghelp.dll y Microsoft.DTfW.DHL.manifest. El archivo de manifiesto es el siguiente:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<!-- $Id --> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
    <noInheritable /> 
    <assemblyIdentity type="win32" name="Microsoft.DTfW.DHL" version="6.11.1.404" processorArchitecture="x86" /> 
    <file name="dbghelp.dll" /> 
</assembly> 

Aviso el campo 'processorArchitecture'. Se configuró en "amd64" en lugar de "x86". Probablemente no sea siempre la causa, pero en nuestro caso fue la causa raíz, por lo que puede ser útil para algunos. Para ejecuciones de 64 bits, querrá "amd64" allí.

4

En mi caso, Visual Leak Detector que estaba usando para localizar pérdidas de memoria en Visual Studio faltaba el archivo de manifiesto Microsoft Microsoft.DTfW.DHL.manifest en las carpetas C:\Program Files (x86)\Visual Leak Detector\bin\Win32 y C:\Program Files (x86)\Visual Leak Detector\bin\Win64.

Cuestiones relacionadas