Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 19471|Répondre: 0

[Source] « Le initialiseur de type pour 'Emgu.CV.CvInvoke' a fait une exception » ?

[Copié le lien]
Publié sur 25/11/2015 10:57:59 | | |
L’initialiseur de type pour 'Emgu.CV.CvInvoke' a lancé une exception.
Si vous voyez cette exception, veuillez vérifier ce qui suit

As-tu installé MSVCRT ?
Pour la version 2.0+, le binaire OpenCV 2.0 inclus est construit avec Visual Studio 2008, il faudra installer MSVCRT 9.0 SP1 pour résoudre le problème de dépendance.
Pour la version 1.5, le binaire OpenCV pré-1.1 inclus est construit avec Visual Studio 2005, il faudra installer MSVCRT 8.0 SP1 pour résoudre le problème de dépendance.
As-tu copié les DLL OpenCV dans le répertoire d’exécution ?
Assurez-vous que les DLL non gérées sont dans le répertoire d’exécution.
Pour la version CV d’Emgu <= 2.1, cela signifie les DLL suivantes : cvXXX.dll, cvauxXXX.dll, cxcoreXXX.dll, highguiXXX.dll, opencv_ffmpegXXX.dll, mlXXX.dll andcvextern.dll où XXX est l’OpenCV Numéro de version.
Pour la version CV d’Emgu >= 2.2, cela signifie les DLL suivants : opencv_calib3dXXX.dll, opencv_contribXXX.dll, opencv_coreXXX.dll, opencv_features2dXXX.dll, opencv_highguiXXX.dll, opencv_ imgprocXXX.dll, opencv_legacyXXX.dll opencv_mlXXX.dll, opencv_objectdetectXXX.dll opencv_videoXXX.dll où XXX est le numéro de version OpenCV.
La meilleure façon de mettre en place votre projet est la suivante :
Copiez les DLL non gérées dans votre dossier projet
Faites un clic droit sur le projet, cliquez sur Ajouter >ObjectExistant et sélectionnez toutes les DLL non gérées. Ajoutez-les au projet.
Pour chacune des DLL incluses, faites un clic gauche dessus, trouvez l’option « Copier vers le répertoire de sortie » et sélectionnez « Copier si plus récent »
Utilisez-vous un système d’exploitation 32 bits ?
L’installateur Windows n’est disponible que pour les fenêtres 32 bits. Si vous utilisez un système d’exploitation 64 bits, il existe trois façons possibles de résoudre ce problème :

Vous pouvez télécharger le package zip binaire 64 bits uniquement depuis sourceforge et l’ajouter à votre projet.
Vous pouvez aussi recompiler OpenCV à partir de la source pour une plateforme 64 bits. Voir l’instruction pour construire à partir de SVN
Sinon, vous pouvez forcer votre application .NET à fonctionner en mode 32 bits, même sur un système d’exploitation 64 bits. Pour cela, dans la page de configuration de votre projet exécutable, sélectionnez Cible de plateforme en tant que 'x86'.
Tu oublies une dépendance ?
Téléchargez Dependency Walker et utilisez-le pour ouvrir le fichier « cvextern.dll ». Vérifiez si une dépendance manque.

J’ai vérifié tout ce qui précède mais j’ai quand même eu l’exception
Dans ce cas, essayez de construire et d’exécuter les exemples. Après avoir construit les exemples, essayez de lancer le programme « Hello World ».

Si « Hello World » fonctionne sans problème, comparez-le à youproject, trouvez la différence de configuration et corrigez-la.

Si « Hello World » obtient le même « initialiseur de type pour’Emgu. CV.CvInvoke' a lancé une exception. » essaie de trouver l’InnerException et signale-la au forum de discussion



Initialisation de type d’EMGU. CV. On peut mettre des exceptions.
Si vous voyez cette exception, veuillez vérifier ce qui suit
As-tu installé msvcrt ?
La version 2+, incluse dans OpenCV 2 binaire, sert à construire Visual Studio 2008, et il faudra installer edmsvcrt 9 SP1 pour résoudre les problèmes de dépendances.
Pour la version 1.5, version binaire OpenCV antérieure à la version 1.1 de Visual Studio 2005, vous devrez installer edmsvcrt 8 SP1 pour résoudre les problèmes de dépendances.
Le répertoire d’exécution des DLL OpenCV que vous avez copié ?
Assurez-vous que la DLL non gérée est dans le répertoire d’exécution.
Pour la version CV d’emgu< = 2.1, ce qui signifie les DLL:cvxxx.dll,cvauxxxx.dll,cxcorexxx suivantes. DLL, highguixxx.dll, opencv_ffmpegxxx.dll, mlxxx.dll andcvextern.dll où xxx sont les numéros de version d’opencv.
Pour la version CV de l’emgu> = 2.2 Cela signifie que les DLL:opencv_calib3dxxx.dll suivantes, opencv_contribxxx. DLL,opencv_corexxx.dll,opencv_features2dxxx。 DLL,opencv_highguixxx.dll,opencv_imgprocxxx.dll,opencv_legacyxxx。 DLL,opencv_mlxxx.dll,opencv_objectdetectxxx。 DLL, opencv_videoxxx.dll XXX est le numéro de version opencv.
La meilleure façon de développer votre projet est la suivante :
DLL non géré copié dans votre dossier projet
Faites un clic droit sur le projet et cliquez sur Ajouter > élément existant pour sélectionner toutes les DLL non gérées. Ajoutez-les au projet.
Pour chaque DLL qu’elle contient, faites un clic gauche dessus, trouvez l’option « Copier & Sortir le répertoire », sélectionnez « Copier si mise à jour »
Utilisez-vous un système d’exploitation 32 bits ?
L’installateur Windows ne peut fournir que des Windows 32 bits. Si vous utilisez un système d’exploitation 64 bits, il existe trois façons possibles de résoudre ce problème :
Vous pouvez télécharger le package zip binaire 64 bits uniquement depuis sourceforge et l’ajouter à votre projet.
Vous pouvez aussi compiler des sources OpenCV depuis des plateformes 64 bits. Voir la directive de construction fromsvn
Ou vous pouvez forcer le vôtre. Les applications .NET fonctionnent en mode 32 bits, même sur des systèmes d’exploitation 64 bits. Pour cela, sur la page de configuration de votre projet d’exécution, sélectionnez la cible de la plateforme en xx86".
Tu rates des dépendances ?
Téléchargez Dependent Walker et utilisez-le pour ouvrir le « fichier DLL cvextern ». ”。 Vérifiez si des dépendances manquent.
J’ai vérifié tout ce qui précède mais j’ai encore des exceptions
Dans ce cas, essayez de construire et de faire tourner une instance. Après avoir construit l’instance, essayez d’exécuter le programme Hello World.
Si Hello World fonctionne sans problème, il se compare à youproject, trouve des différences structurelles et les résout.
Si « hello world » reçoit le même « type initial value seter for’emgu ». CV. cvinvoke » fait une exception. message, j’essaie de découvrir OutInnerException au forum





Précédent:Tutoriel détaillé pour le bracelet Xiaomi 0 Yuanlu et autres produits
Prochain:C# importe et appelle les fonctions de l’API Win32 via DllImport
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com