Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 19471|Răspunde: 0

[Sursă] "Inițializatorul de tip pentru 'Emgu.CV.CvInvoke' a făcut o excepție"?

[Copiază linkul]
Postat pe 25.11.2015 10:57:59 | | |
Inițializatorul de tip pentru 'Emgu.CV.CvInvoke' a aruncat o excepție.
Dacă vedeți această excepție, vă rugăm să verificați următoarele

Ai instalat MSVCRT?
Pentru versiunea 2.0+, binarul OpenCV 2.0 inclus este construit cu Visual Studio 2008, va trebui să instalezi MSVCRT 9.0 SP1 pentru a rezolva problema dependenței.
Pentru versiunea 1.5, binarul OpenCV pre-1.1 inclus este construit cu Visual Studio 2005, va trebui să instalezi MSVCRT 8.0 SP1 pentru a rezolva problema dependenței.
Ai copiat DLL-urile OpenCV în directorul de execuție?
Asigură-te că DLL-urile negestionate sunt în directorul de execuție.
Pentru versiunea Emgu CV <= 2.1, aceasta înseamnă următoarele DLL-uri: cvXXX.dll, cvauxXXX.dll, cxcoreXXX.dll,highguiXXX.dll, opencv_ffmpegXXX.dll mlXXX.dll andcvextern.dll unde XXX este OpenCV Număr de versiune.
Pentru versiunea CV Emgu >= 2.2, aceasta înseamnă următoarele DLL-uri: 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 unde XXX este numărul de versiune OpenCV.
Cel mai bun mod de a-ți configura proiectul este:
Copiază DLL-urile negestionate în folderul proiectului tău
Dă click dreapta pe proiect, apasă pe Adaugă->ObiectulExistent și selectează toate DLL-urile negestionate. Adaugă-le în proiect.
Pentru fiecare dintre DLL-urile incluse, faceți clic stânga pe ele, găsiți opțiunea "Copyto Output Directory" și selectați "Copyto if for newer"
Folosești un sistem de operare pe 32 de biți?
Instalatorul Windows este disponibil doar pentru ferestre pe 32 de biți. Dacă folosești un sistem de operare pe 64 de biți, există trei moduri posibile de a rezolva această problemă:

Poți descărca pachetul zip binar de 64 de biți de pe SourceForge și să-l adaugi în proiectul tău.
De asemenea, poți recompila OpenCV din sursă pentru o platformă pe 64 de biți. Vezi instrucțiunile pentru construirea de la SVN
Alternativ, poți forța aplicația .NET să ruleze în modul pe 32 biți, chiar și pe un sistem de operare pe 64 de biți. Pentru a face acest lucru, în pagina de configurare a proiectului tău executabil, selectează Platform Target ca 'x86'.
Îți scapă vreo dependență?
Descarcă Dependency Walker și folosește-l pentru a deschide fișierul "cvextern.dll". Verifică dacă lipsește vreo dependență.

Am verificat toate cele de mai sus, dar tot am primit excepția
În acest caz, te rog să încerci să construiești și să rulezi exemplele. După ce construiești exemplele, încearcă să rulezi programul "Hello World".

Dacă "Hello World" rulează fără nicio problemă, compară-l cu youproject, găsește diferența de configurație și repară-o.

Dacă "Hello World" primește același "Inițializatorul de tip pentru Emgu. CV.CvInvoke' a aruncat o excepție." încearcă să afli din InnerException și raportează-l pe forumul de discuții



Inițializarea tipului EMGU. CV。 Cvinvoke 'pune excepții.
Dacă vedeți această excepție, vă rugăm să verificați următoarele
Ai instalat msvcrt?
Versiunea 2+, cu binarul opencv 2 inclus, este pentru a construi Visual Studio 2008, iar tu va trebui să instalezi edmsvcrt 9 SP1 pentru a rezolva problemele de dependență.
Pentru versiunea 1.5, versiunea binară OpenCV pre-1.1 pre-1 Visual Studio 2005, va trebui să instalezi edmsvcrt 8 SP1 pentru a rezolva problemele de dependență.
Directorul de execuție DLL opencv pe care l-ai copiat?
Asigură-te că DLL-ul negestionat se află în directorul de execuție.
Pentru versiunea emgu CV< = 2.1, ceea ce înseamnă următoarele DLL:cvxxx.dll,cvauxxxx.dll,cxcorexxx. DLL, highguixxx.dll, opencv_ffmpegxxx.dll mlxxx.dll andcvextern.dll unde xxx sunt numerele de versiune ale opencv.
Pentru versiunea emgu CV> = 2.2 Aceasta înseamnă că următorul DLL: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 XXX este numărul opencvversion.
Cea mai bună modalitate de a-ți construi proiectul este:
DLL negestionat copiat în folderul proiectului tău
Faceți clic dreapta pe proiect și apasă pe Adaugă > element existent pentru a selecta toate DLL-urile negestionate. Adaugă-i în proiect.
Pentru fiecare DLL pe care îl conține, faceți clic stânga pe ea, găsiți opțiunea "Copy & Output Directory", selectați "Copy if update"
Rulezi un sistem de operare pe 32 de biți?
Windows Installer poate oferi doar Windows pe 32 de biți. Dacă folosești un sistem de operare pe 64 de biți, există trei moduri posibile de a rezolva această problemă:
Poți descărca pachetul zip binar de 64 de biți de pe SourceForge și să-l adaugi în proiectul tău.
Poți, de asemenea, compila surse OpenCV de pe platforme pe 64 de biți. Vezi directiva clădirii din svn
Sau poți să-l forțezi pe al tău. Aplicațiile .NET rulează în modul 32 de biți, chiar și pe sisteme de operare pe 64 de biți. Pentru a face acest lucru, pe pagina de configurare a proiectului tău de execuție, selectează ținta platformei ca 'x86".
Îți scapă vreo dependență?
Descarcă Dependent Walker și folosește-l pentru a deschide "fișierul DLL cvextern". ”。 Verifică dacă lipsește vreo dependență.
Am verificat toate cele de mai sus, dar tot mai am excepții
În acest caz, încearcă să construiești și să rulezi o instanță. După ce construiești instanța, încearcă să rulezi programul Hello World.
Dacă Hello World rulează fără probleme, se compară cu proiectul tău, găsește diferențe structurale și le rezolvă.
Dacă "hello world" primește același "tip initial value setter for'emgu". CV。 Cvinvoke" face o excepție. Mesaj, încerc să găsesc în afara interexception-ului de pe forum





Precedent:Tutorial detaliat pentru brățara Xiaomi 0 Yuanlu și alte produse
Următor:C# importă și apelează funcții API Win32 prin DllImport
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com