Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 19471|Svare: 0

[Kilde] "Typeinitialisatoren for 'Emgu.CV.CvInvoke' kastet et unntak"?

[Kopier lenke]
Publisert på 25.11.2015 10:57:59 | | |
Typeinitialisatoren for 'Emgu.CV.CvInvoke' kastet et unntak.
Hvis du ser dette unntaket, vennligst sjekk følgende

Har du installert MSVCRT?
For versjon 2.0+ er den medfølgende OpenCV 2.0-binærfilen bygget med Visual Studio 2008, du må installere MSVCRT 9.0 SP1 for å løse avhengighetsproblemet.
For versjon 1.5 er den medfølgende OpenCV-binærfilen før 1.1 bygget med Visual Studio 2005, og du må installere MSVCRT 8.0 SP1 for å løse avhengighetsproblemet.
Har du kopiert OpenCV-dll-filene til execution-mappen?
Sørg for at de uadministrerte DLL-ene ligger i kjørekatalogen.
For Emgu CV-versjon <= 2.1 betyr dette følgende dlls: cvXXX.dll, cvauxXXX.dll, cxcoreXXX.dll, highguiXXX.dll, opencv_ffmpegXXX.dll, mlXXX.dll andcvextern.dll hvor XXX er OpenCV versjonsnummer.
For Emgu CV-versjon >= 2.2 betyr dette følgende dll-er: 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 hvor XXX er OpenCVversjonsnummeret.
Den beste måten å sette opp prosjektet ditt på er:
Kopier de uadministrerte DLL-ene til prosjektmappen din
Høyreklikk på prosjektet, klikk på Add->ExistingItem og velg alle uadministrerte DLL-filer. Legg dem til i prosjektet.
For hver av de inkluderte DL-ene, venstreklikk på den, finn alternativet "Copyto Output Directory" og velg "Kopier hvis nyere"
Kjører du et 32-bits operativsystem?
Windows-installasjonsprogrammet er kun tilgjengelig for 32-bits vinduer. Hvis du bruker et 64-bits operativsystem, finnes det tre mulige måter å løse dette problemet på:

Du kan laste ned den 64-bits binær-only zip-pakken fromsourceforge og legge den til i prosjektet ditt.
Du kan også kompilere OpenCV på nytt fra kildekode for 64-bits plattform. Se instruksjonen for å bygge fra SVN
Alternativt kan du tvinge .NET-applikasjonen din til å kjøre i 32-bits modus, selv på et 64-bit OS. For å gjøre dette, velg Platform Target as'x86' på konfigurasjonssiden til ditt kjørbare prosjekt.
Mangler du noen avhengighet?
Last ned Dependency Walker og bruk den til å åpne "cvextern.dll"-filen. Sjekk om noen avhengighet mangler.

Jeg har sjekket alt ovenfor, men jeg fikk fortsatt unntaket
I dette tilfellet, prøv å bygge og kjøre eksempelene. Etter å ha laget eksemplene, prøv å kjøre "Hello World"-programmet.

Hvis "Hello World" kjører uten problemer, sammenlign det med youproject, finn forskjellen i konfigurasjon og fiks det.

Hvis "Hello World" får du samme "The type initializer for'Emgu. CV.CvInvoke' kastet et unntak.» melding, prøv å finne uttheInnerException og rapporter det til diskusjonsforumet



Type initialisering av emgu. CV. cvinvoke 'put exceptions.
Hvis du ser dette unntaket, vennligst sjekk følgende
Har du installert msvcrt?
Versjon 2+, som følger med opencv 2-binær, er for å bygge Visual Studio 2008, og du må installere edmsvcrt 9 SP1 for å løse avhengighetsproblemer.
For versjon 1.5, medfølgende OpenCV pre1.1 binære versjon Visual Studio 2005, må du installere edmsvcrt 8 SP1 for å løse avhengighetsproblemer.
Opencv DLL-kjøringsmappen du kopierte?
Sørg for at den ubehandlede DLL-en er i kjørekatalogen.
For emgu CV-versjonen< = 2,1, som betyr følgende DLL:cvxxx.dll,cvauxxxx.dll,cxcorexxx. DLL, highguixxx.dll, opencv_ffmpegxxx.dll, mlxxx.dll andcvextern.dll hvorxxx er versjonsnumrene til opencv.
For emgu CV-versjonen> = 2,2 Dette betyr at følgende 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, er opencvversion-nummeret.
Den beste måten å bygge prosjektet ditt på er:
Ubehandlet DLL kopiert til prosjektmappen din
Høyreklikk på prosjektet og klikk Add-> eksisterendeitem for å velge alle uadministrerte DLL-er. Legg dem til prosjektet.
For hver DLL den inneholder, venstreklikk på den, finn alternativet «Kopier og eksporter katalog», velg «Kopier hvis oppdatert»
Kjører du et 32-bits operativsystem?
Windows Installer kan kun tilby 32-bits Windows. Hvis du bruker et 64-bits operativsystem, finnes det tre mulige måter å løse dette problemet på:
Du kan laste ned den 64-bits binære zip-pakken fra sourceforge og legge den til i prosjektet ditt.
Du kan også kompilere OpenCV-kilder fra 64-bits plattformer. Se direktivet om å bygge fra SVN
Eller du kan tvinge din. .NET-applikasjoner kjører i 32-bits modus, selv på 64-bits operativsystemer. For å gjøre dette, velg plattformmålet som 'x86" på konfigurasjonssiden til ditt utførelsesprosjekt.
Mangler du noen avhengigheter?
Last ned Dependent Walker og bruk den til å åpne "cvextern DLL-filen." ”。 Sjekk om noen avhengigheter mangler.
Jeg har sjekket alt over, men jeg har fortsatt unntak
I dette tilfellet, prøv å bygge og kjøre en instans. Etter å ha bygget instansen, prøv å kjøre Hello World-programmet.
Hvis Hello World kjører uten problemer, sammenligner det med youproject, finner strukturelle forskjeller og løser dem.
Hvis «hello world» får samme «type initial value setter for'emgu». CV. cvinvoke" gir et unntak. melding, prøver å finne ut av det indre unntaket på forumet





Foregående:Detaljert veiledning for 0 Yuanlu Xiaomi-armbånd og andre produkter
Neste:C# importerer og kaller Win32 API-funksjoner via DllImport
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com