Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 19471|Odpoveď: 0

[Zdroj] "Inicializátor pre 'Emgu.CV.CvInvoke' vyhodil výnimku"?

[Kopírovať odkaz]
Zverejnené 25. 11. 2015 10:57:59 | | |
Typový inicializátor pre 'Emgu.CV.CvInvoke' hodil výnimku.
Ak uvidíte túto výnimku, prosím, skontrolujte nasledujúce

Nainštaloval si MSVCRT?
Pre verziu 2.0+ sa pribalený binárny súbor OpenCV 2.0 zostavuje s Visual Studio 2008, budete musieť nainštalovať MSVCRT 9.0 SP1 na vyriešenie problému závislosti.
Pre verziu 1.5 sa balený OpenCV pre1.1 binárny súbor zostavuje s Visual Studio 2005, budete musieť nainštalovať MSVCRT 8.0 SP1, aby ste vyriešili závislosťový problém.
Skopíroval si OpenCV dll do adresára vykonávania?
Uistite sa, že nespravované DLL sú v adresári vykonávania.
Pre verziu Emgu CV <= 2.1 to znamená nasledujúce dll: cvXXX.dll, cvauxXXX.dll, cxcoreXXX.dll, highguiXXX.dll, opencv_ffmpegXXX.dll mlXXX.dll andcvextern.dll, kde XXX je OpenCV Verzia.
Pre verziu Emgu CV >= 2.2 to znamená nasledujúce 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 kde XXX je číslo verzie OpenCV.
Najlepší spôsob, ako nastaviť svoj projekt, je:
Skopíruj nespravované DLL do priečinka projektu
Kliknite pravým tlačidlom na projekt, kliknite na Add->ExistingItem a vyberte všetky nespravované DLL. Pridajte ich do projektu.
Pre každú z zahrnutých DLL kliknite naň ľavým tlačidlom, nájdite možnosť "Kopírovať do výstupného adresára" a vyberte "Kopírovať, ak je novšia"
Používate 32-bitový operačný systém?
Windows inštalátor je dostupný iba pre 32-bitové okná. Ak používate 64-bitový operačný systém, existujú tri možné spôsoby, ako tento problém vyriešiť:

Môžeš si stiahnuť zip balík len pre 64-bitový binárny súbor fromsourceforge a pridať ho do svojho projektu.
OpenCV môžete tiež prekompilovať zo zdrojového kódu pre 64-bitovú platformu. Pozrite si návod na zostavenie fromSVN
Alternatívne môžete donútiť svoju .NET aplikáciu bežať v 32-bitovom režime, aj na 64-bitovom OS. Aby ste to urobili, na konfiguračnej stránke vášho spustiteľného projektu vyberte Platform Target ako 'x86'.
Chýba ti nejaká závislosť?
Stiahnite si Dependency Walker a použite ho na otvorenie súboru "cvextern.dll". Skontrolujte, či nechýba nejaká závislosť.

Skontroloval som všetko vyššie uvedené, ale aj tak som dostal výnimku
V takom prípade sa prosím pokúste vytvoriť a spustiť príklady. Po vytvorení príkladov skúste spustiť program "Hello World".

Ak "Hello World" beží bez problémov, porovnajte ho s youproject, nájdite rozdiel v konfigurácii a opravte ho.

Ak "Hello World" dostanete rovnaký "The type initializer for'Emgu. CV.CvInvoke' hodil výnimku." správu, skúste zistiť InnerException a nahlásiť to diskusnému fóru



Typová inicializácia EMGU. CV。 cvinvoke 'dajte výnimky.
Ak uvidíte túto výnimku, prosím, skontrolujte nasledujúce
Nainštaloval si MSVCRT?
Verzia 2+, pribalený opencv 2 binárny súbor je určený na zostavenie Visual Studio 2008 a na vyriešenie závislostí budete musieť nainštalovať edmsvcrt 9 SP1.
Pre verziu 1.5, zabalenú OpenCV pre1.1 binárnu zostavu Visual Studio 2005, budete musieť nainštalovať edmsvcrt 8 SP1 na vyriešenie závislostí.
Adresár na vykonávanie opencv DLL, ktorý si skopíroval?
Uistite sa, že nespravovaná DLL je v adresári vykonávania.
Pre verziu emgu CV< = 2.1, čo znamená nasledujúce DLL:cvxxx.dll,cvauxxxx.dll,cxcorexxx. DLL, highguixxx.dll, opencv_ffmpegxxx.dll mlxxx.dll andcvextern.dll kde xxx sú čísla verzií opencv.
Pre verziu emgu CV> = 2,2 To znamená, že nasledujúci 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 je číslo opencvversion.
Najlepší spôsob, ako vybudovať svoj projekt, je:
Nespravované DLL skopírované do priečinka projektu
Kliknite pravým tlačidlom na projekt a kliknite na Add-> existingitem, aby ste vybrali všetky nespravované DLL. Pridaj ich do projektu.
Pre každé DLL, ktoré obsahuje, kliknite ľavým tlačidlom myši, nájdite možnosť "Kopírovať a vypisovať adresár" a vyberte "Kopírovať, ak je aktualizované"
Používate 32-bitový operačný systém?
Windows inštalátor dokáže poskytnúť iba 32-bitové Windows. Ak používate 64-bitový operačný systém, existujú tri možné spôsoby, ako tento problém vyriešiť:
Môžeš si stiahnuť 64-bitový binárny zip balík fromsourceforge a pridať ho do svojho projektu.
Môžeš tiež kompilovať zdrojové kódy OpenCV z 64-bitových platforiem. Pozri stavebnú direktívu FromSVN
Alebo si môžeš vynútiť svoje. .NET aplikácie bežia v 32-bitovom režime, dokonca aj na 64-bitových operačných systémoch. Aby ste to urobili, na konfiguračnej stránke vášho vykonávacieho projektu vyberte cieľ platformy ako 'x86".
Chýbajú ti nejaké závislosti?
Stiahnite si Dependent Walker a použite ho na otvorenie "cvextern DLL súboru." ”。 Skontrolujte, či nechýbajú nejaké závislosti.
Skontroloval som všetko vyššie uvedené, ale stále mám výnimky
V takom prípade skúste vytvoriť a spustiť inštanciu. Po zostavení inštancie skúste spustiť program Hello World.
Ak Hello World beží bez problémov, porovná sa s tvojím projektom, nájde štrukturálne rozdiely a vyrieši ich.
Ak "hello world" dostane rovnaké "napíš počiatočnú hodnotu setter for'emgu". CV。 cvinvoke" uvádza výnimku. správa, snažím sa zistiť, čo sa týka vnútornej výnimky na fóre





Predchádzajúci:Podrobný návod na náramok 0 Yuanlu Xiaomi a ďalšie produkty
Budúci:C# importuje a volá funkcie Win32 API cez DllImport
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com