J'essaie d'exécuter une application OpenCV
via Microsoft Visual C++ 2010 Express
et d'obtenir le message suivant:
Comment puis-je résoudre ce problème?
Je suis d'accord avec Brandrew, le problème est probablement causé par des dll manquantes qui ne peuvent pas être trouvées ni sur le chemin du système ni dans le dossier contenant l'exécutable. Essayez de placer les DLL suivantes à proximité du fichier exécutable:
Sinon, essayez de charger le fichier exécutable dans Dependency Walker ( http://www.dependencywalker.com/ ), il devrait signaler les DLL manquantes pour vous.
Dans mon cas, Détecteur de fuite visuel J'utilisais pour rechercher les fuites de mémoire dans Visual Studio 2015 manquait le fichier manifeste Microsoft Microsoft.DTfW.DHL.manifest
, voir lien Création d'un détecteur de fuite visuel tout en bas. Ce fichier doit être dans le dossier où vld.dll
ou vld_x64.dll
est dans votre configuration, par exemple C:\Program Files (x86)\Visual Leak Detector\bin\Win32
, C:\Program Files (x86)\Visual Leak Detector\bin\Win64
, Debug
ou x64/Debug
.
Il suffit d’exécuter le fichier .exe dans Dependency Walker ( http://dependencywalker.com/ ) Il vous indiquera les dll manquantes et les téléchargera (www.dll-files.com) et les coller c: windows: system32 et le dossier en tant que votre .exe et même fournir le chemin de ces dll dans la variable de chemin.
J'ai eu cette erreur en essayant d'exécuter le fichier solution de mon ami avec Visual Studio 2010 après l'avoir converti en version 2010. Le correctif est facile, je crée un nouveau projet, cliquez avec le bouton droit de la souris sur la solution pour ajouter les fichiers .cpp et .h existants à partir du projet de mon ami. Alors ça marche.
Je suppose que c'est une fenêtre Vista! Je l'ai souvent eu lorsque j'ai d'abord essayé de porter un programme DirectX de XPsp3 vers Vista.
C'est un problème de .dll. OpenCV runtime.dll fera appel à un system.dll qui ne sera plus expédié sous Vista. Vous devrez donc malheureusement rechercher un peu le système qui cherche à obtenir system.dll. (system.dll pourrait être vc2010 ou Vista)
Cette erreur est également due à une installation incorrecte de .dlls (c’est-à-dire au non-déploiement) Hth Bonne chasse
Même si j’ai fait face à la même erreur, j’ai réglé le problème après coup…. Deux points à examiner:
_CONSOLE
, cela a causé une erreur pour moi. Pour certaines applications, vous devez inclure WIN32;_WINDOWS;_CONSOLE;_DEBUG;QT_DLL;QT_GUI_LIB;QT_NETWORK_LIB;QT_CORE_LIB;COIN_DLL;SOQT_DLL;QT_DEBUG;
J'ai eu cette erreur alors que je travaillais dans l'application Coin3D.
C'est parce qu'il y a une DLL que votre programme est manquant ou introuvable.
Dans votre cas, je pense que vous manquez les dll openCV. Vous pouvez les trouver dans le répertoire "build" fourni avec CV ouvert. Si vous utilisez VS2010 et créez un programme x86, vous pouvez localiser vos dll ici sous "opencv\build\x86\vc10\bin". Copiez simplement tous ces fichiers dans vos dossiers Debug et Release et cela devrait résoudre vos problèmes.
En règle générale, vous pouvez résoudre ce problème à l'aide de la procédure suivante:
N'oubliez pas que vous aurez besoin de ces DLL dans le même répertoire que votre fichier .exe. Si vous copiez le fichier .exe du dossier Version vers un autre emplacement, vous aurez également besoin de copier ces DLL avec le fichier .exe. Pour la portabilité, j'ai tendance à essayer de tester une machine virtuelle avec une nouvelle installation de Windows (aucune mise à jour ni programme installé), et je parcoure les dépendances à l'aide de Dependency Walker jusqu'à ce que le programme fonctionne correctement.
C'est un problème commun. Voir aussi ces questions:
Impossible d'exécuter vc ++, code d'erreur 0xc0150002
L'application n'a pas pu démarrer (0xc0150002) avec libcurl C++ Windows 7 VS 2010
0xc0150002 Erreur lors de la tentative d'exécution de VC++ libcurl
L'application n'a pas pu démarrer correctement 0xc150002
L'application n'a pas pu démarrer correctement (0 * 0150002) - OpenCv
Bonne chance!
J'ai rencontré un tel problème. Visual Studio 2008 a clairement indiqué que le problème était causé par libtiff.dll. Il ne peut pas être chargé pendant un certain temps à cause de son manifeste (en fait, cette dll n’a aucun manifeste). Je l'ai corrigé, quand j'avais supprimé libtiff.dll de mon projet (mais simultanément, j'ai perdu la possibilité d'ouvrir des fichiers TIFF compressés!). J'ai recompilé dll susmentionné, mais le problème reste toujours. Intéressant, que sur ma propre machine, je n’ai pas une telle erreur. Trois autres compères ont refusé de charger mon prog. Attention!!! Voici http://www.error-repair-tools.com/ppc/error.php?t=0xc0150002 un sage garçon a écrit, que cette erreur a été causée par un problème avec le registre et offre un outil de réparation. Je suppose que cet "outil de réparation" va installer des logiciels malveillants sur votre ordinateur.
Dans notre cas (après avoir essayé Dependency Walker), il s’agissait d’un fichier manifeste défectueux, mélangeant 64 bits et 32 bits. Nous utilisons deux fichiers supplémentaires lors de l'exécution en mode débogage: dbghelp.dll et Microsoft.DTfW.DHL.manifest . Le fichier manifeste ressemble à ceci:
<?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>
Remarquez le champ 'processorArchitecture'. Il a été réglé sur "AMD64" au lieu de "x86". Ce n’est probablement pas toujours la cause, mais dans notre cas c’était la cause première, alors cela peut être utile à certains. Pour les exécutions 64 bits, vous voudrez "AMD64".