Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 19471|Risposta: 0

[Fonte] "L'inizializzatore di tipo per 'Emgu.CV.CvInvoke' ha fatto un'eccezione"?

[Copiato link]
Pubblicato su 25/11/2015 10:57:59 | | |
L'inizializzatore di tipo per 'Emgu.CV.CvInvoke' ha lanciato un'eccezione.
Se vedi questa eccezione, controlla quanto segue

Hai installato MSVCRT?
Per la versione 2.0+, il binario OpenCV 2.0 bundle è compilato con Visual Studio 2008, dovrai installare MSVCRT 9.0 SP1 per risolvere il problema della dipendenza.
Per la versione 1.5, il binario OpenCV pre-1.1 bundle è compilato con Visual Studio 2005, dovrai installare MSVCRT 8.0 SP1 per risolvere il problema di dipendenza.
Hai copiato le DLL di OpenCV nella directory di esecuzione?
Assicurati che le DLL non gestite siano nella directory di esecuzione.
Per la versione CV di Emgu <= 2.1, questo significa le seguenti dll: cvXXX.dll, cvauxXXX.dll, cxcoreXXX.dll, highguiXXX.dll, opencv_ffmpegXXX.dll, mlXXX.dll andcvextern.dll dove XXX è l'OpenCV Numero di versione.
Per la versione CV di Emgu >= 2.2 questo significa le seguenti 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 dove XXX è il numero di versione OpenCV.
Il modo migliore per impostare il tuo progetto è:
Copia le DLL non gestite nella cartella del tuo progetto
Clicca con il tasto destro sul progetto, clicca su Aggiungi->ElementoEsistente e seleziona tutte le DLL non gestite. Aggiungile al progetto.
Per ciascuna delle DLL incluse, clicca con il tasto sinistro, trova l'opzione "Copia nella directory output" e seleziona "Copia se più recente"
Stai usando un sistema operativo a 32 bit?
L'installer di Windows è disponibile solo per finestre a 32 bit. Se stai usando un sistema operativo a 64 bit, ci sono tre modi possibili per risolvere questo problema:

Puoi scaricare il pacchetto zip solo binario a 64 bit da Sourceforge e aggiungerlo al tuo progetto.
Puoi anche ricompilare OpenCV dal codice sorgente per una piattaforma a 64 bit. Vedi le istruzioni per costruire da SVN
In alternativa puoi forzare la tua applicazione .NET a girare in modalità a 32 bit, anche su un sistema operativo a 64 bit. Per farlo, nella pagina di configurazione del tuo progetto eseguibile, seleziona Platform Target come 'x86'.
Ti manca qualche dipendenza?
Scarica Dependency Walker e usalo per aprire il file "cvextern.dll". Controlla se manca qualche dipendenza.

Ho controllato tutto sopra ma ho comunque ottenuto l'Eccezione
In questo caso, per favore prova a costruire ed eseguire gli esempi. Dopo aver costruito gli esempi, prova a eseguire il programma "Hello World".

Se "Hello World" gira senza problemi, confrontalo con youproject, trova la differenza di configurazione e risolvilo.

Se "Hello World" riceve lo stesso "Iniziatore di tipo per'Emgu. CV.CvInvoke' ha lanciato un'eccezione.", cerca di scoprire outtheInnerException e segnalalo al forum di discussione



Inizializzazione di tipo di Emgu. CV. Invoca 'fai eccezioni.
Se vedi questa eccezione, controlla quanto segue
Hai installato msvcrt?
La versione 2+, bundle di opencv 2 binary, serve a compilare Visual Studio 2008, e dovrai installare edmsvcrt 9 SP1 per risolvere problemi di dipendenze.
Per la versione 1.5, bundle OpenCV pre-1.1 binary build Visual Studio 2005, dovrai installare edmsvcrt 8 SP1 per risolvere problemi di dipendenze.
La directory di esecuzione delle DLL OpenCV che hai copiato?
Assicurati che la DLL non gestita sia nella directory di esecuzione.
Per la versione CV di emgu< = 2.1, il che significa i seguenti DLL:cvxxx.dll,cvauxxxx.dll,cxcorexxx. DLL, highguixxx.dll, opencv_ffmpegxxx.dll mlxxx.dll andcvextern.dll dove xxx sono i numeri di versione di opencv.
Per la versione CV dell'emgu> = 2.2 Questo significa che il seguente 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 è il numero opencvversion.
Il modo migliore per costruire il tuo progetto è:
DLL non gestiti copiati nella cartella del tuo progetto
Clicca con il tasto destro sul progetto e clicca su Aggiungi > elemento esistente per selezionare tutte le DLL non gestite. Aggiungili al progetto.
Per ogni DLL che contiene, clicca con il tasto sinistro su di essa, trova l'opzione "Copia & Output Directory", seleziona "Copia se aggiornata"
Usi un sistema operativo a 32 bit?
L'Installer di Windows può fornire solo Windows a 32 bit. Se usi un sistema operativo a 64 bit, ci sono tre modi possibili per risolvere questo problema:
Puoi scaricare il pacchetto zip a 64 bit solo binario da sourceforge e aggiungerlo al tuo progetto.
Puoi anche compilare sorgenti OpenCV da piattaforme a 64 bit. Vedi la direttiva dell'edificio da svn
Oppure puoi forzare il tuo. Le applicazioni .NET funzionano in modalità 32 bit, anche su sistemi operativi a 64 bit. Per farlo, nella pagina di configurazione del tuo progetto di esecuzione, seleziona il target della piattaforma come 'x86".
Ti manca qualche dipendenze?
Scarica Dependent Walker e usalo per aprire il "file DLL cvextern." ”。 Controlla se mancano dipendenze.
Ho controllato tutto quanto sopra ma ho ancora delle eccezioni
In questo caso, prova a costruire ed eseguire un'istanza. Dopo aver costruito l'istanza, prova a eseguire il programma Hello World.
Se Hello World funziona senza problemi, si confronta con il tuo progetto, trova differenze strutturali e le risolve.
Se "hello world" riceve lo stesso "type, initial value setter for'emgu". CV. cvinvoke" fa un'eccezione. messaggio, sto cercando di scoprire OuttheInnerexception del forum





Precedente:Tutorial dettagliato per il braccialetto Xiaomi 0 Yuanlu e altri prodotti
Prossimo:C# importa e chiama le funzioni API di Win32 tramite DllImport
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com