Der Typinitialisierer für 'Emgu.CV.CvInvoke' hat eine Ausnahme angezeigt. Wenn Sie diese Ausnahme sehen, prüfen Sie bitte Folgendes
Hast du MSVCRT installiert? Für Version 2.0+ wird das mitgelieferte OpenCV 2.0-Binärsystem mit Visual Studio 2008 erstellt, du musst MSVCRT 9.0 SP1 installieren, um das Abhängigkeitsproblem zu lösen. Für Version 1.5 ist die mitgelieferte OpenCV-Pre1.1-Binärdatei mit Visual Studio 2005 erstellt; du musst MSVCRT 8.0 SP1 installieren, um das Abhängigkeitsproblem zu lösen. Hast du die OpenCV-DLLs ins Ausführungsverzeichnis kopiert? Stelle sicher, dass die nicht verwalteten DLLs im Ausführungsverzeichnis sind. Für die Emgu CV-Version <= 2.1 bedeutet dies folgende DLLs: cvXXX.dll, cvauxXXX.dll, cxcoreXXX.dll, highguiXXX.dll, opencv_ffmpegXXX.dll, mlXXX.dll andcvextern.dll wobei XXX das OpenCV ist Versionsnummer. Für die Emgu CV-Version >= 2.2 bedeutet dies folgende DLLs: 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 wobei XXX die OpenCV-Versionsnummer ist. Der beste Weg, Ihr Projekt aufzubauen, ist: Kopiere die nicht verwalteten DLLs in deinen Projektordner Rechtsklick auf das Projekt, klicke auf Add->ExistingItem und wähle alle nicht verwalteten DLLs aus. Füge sie dem Projekt hinzu. Für jede der enthaltenen DLLs klicke mit der linken Maustaste darauf, suche die Option "Copyto Output Directory" und wähle "Copy if newer" aus. Nutzt du ein 32-Bit-Betriebssystem? Der Windows-Installer ist nur für 32-Bit-Fenster verfügbar. Wenn Sie ein 64-Bit-Betriebssystem verwenden, gibt es drei mögliche Möglichkeiten, dieses Problem zu lösen:
Du kannst das 64-Bit-reine Binär-Zip-Paket fromsourceforge herunterladen und zu deinem Projekt hinzufügen. Man kann OpenCV auch vom Quellcode für eine 64-Bit-Plattform neu kompilieren. Siehe die Anleitung zum Aufbau von SVN Alternativ kannst du deine .NET-Anwendung dazu zwingen, im 32-Bit-Modus zu laufen, selbst auf einem 64-Bit-Betriebssystem. Dazu wählen Sie auf der Konfigurationsseite Ihres ausführbaren Projekts Platform Target als'x86' aus. Fehlt dir eine Abhängigkeit? Lade Dependency Walker herunter und nutze es, um die Datei "cvextern.dll" zu öffnen. Überprüfe, ob eine Abhängigkeit fehlt.
Ich habe alles oben überprüft, aber trotzdem die Ausnahme bekommen In diesem Fall versuchen Sie bitte, die Beispiele zu erstellen und auszuführen. Nachdem Sie die Beispiele erstellt haben, versuchen Sie, das "Hello World"-Programm auszuführen.
Wenn "Hello World" problemlos läuft, vergleiche es mit youproject, finde den Unterschied in der Konfiguration und behebe es.
Wenn "Hello World", erhalte denselben "Typinitialisierer für'Emgu. CV.CvInvoke' hat eine Ausnahme geworfen." Versuche, die InnerException herauszufinden und sie im Diskussionsforum zu melden.
Typinitialisierung von Emgu. CV. cvinvoke 'put exceptions'. Wenn Sie diese Ausnahme sehen, prüfen Sie bitte Folgendes Hast du msvcrt installiert? Version 2+, das beiliegende OpenCV 2 Binärsystem, dient dazu, Visual Studio 2008 zu bauen, und du musst edmsvcrt 9 SP1 installieren, um Abhängigkeitsprobleme zu beheben. Für Version 1.5, dem beiliegenden OpenCV vor 1.1 binären Build Visual Studio 2005, müssen Sie edmsvcrt 8 SP1 installieren, um Abhängigkeitsprobleme zu beheben. Das opencv DLL-Ausführungsverzeichnis, das du kopiert hast? Stellen Sie sicher, dass die nicht verwaltete DLL im Ausführungsverzeichnis liegt. Für die emgu CV-Version < = 2,1, was folgende DLL:cvxxx.dll,cvauxxxx.dll,cxcorexxx bedeutet. DLL, highguixxx.dll, opencv_ffmpegxxx.dll, mlxxx.dll andcvextern.dll wo xxx die Versionsnummern von opencv sind. Für die emgu CV-Version> = 2,2 Das bedeutet, dass die folgende 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 ist die Opencvversion-Nummer. Der beste Weg, Ihr Projekt aufzubauen, ist: Unmanaged DLL in deinen Projektordner kopiert Rechtsklicke auf das Projekt und wähle "Add-> existingelement, um alle nicht verwalteten DLLs auszuwählen. Füge sie dem Projekt hinzu. Für jede darin enthaltene DLL klicke mit der linken Maustaste darauf, suche die Option "Verzeichnis kopieren und ausgeben" und wähle "Kopieren bei Aktualisierung" aus. Betreibst du ein 32-Bit-Betriebssystem? Windows Installer kann nur 32-Bit-Windows bereitstellen. Wenn Sie ein 64-Bit-Betriebssystem verwenden, gibt es drei mögliche Möglichkeiten, dieses Problem zu lösen: Du kannst das 64-Bit-binäre Zip-Paket fromsourceforge herunterladen und zu deinem Projekt hinzufügen. Man kann auch OpenCV-Quellen von 64-Bit-Plattformen kompilieren. Siehe die Gebäude-fromsvn-Richtlinie Oder du kannst deinen erzwingen. .NET-Anwendungen laufen im 32-Bit-Modus, selbst auf 64-Bit-Betriebssystemen. Dazu wählen Sie auf der Konfigurationsseite Ihres Ausführungsprojekts das Plattformziel als 'x86" aus. Fehlen dir irgendwelche Abhängigkeiten? Lade Dependent Walker herunter und nutze es, um die "cvextern DLL-Datei" zu öffnen. ”。 Überprüfe, ob irgendwelche Abhängigkeiten fehlen. Ich habe alles oben überprüft, aber ich habe immer noch Ausnahmen Versuche in diesem Fall, eine Instanz zu bauen und auszuführen. Nachdem du die Instanz gebaut hast, versuche, das Hello World-Programm auszuführen. Wenn Hello World problemlos läuft, vergleicht es sich mit youproject, findet strukturelle Unterschiede und löst sie. Wenn "hello world" dasselbe bekommt, "typiere Anfangswertsetzer für'emgu". CV. cvinvoke" wirft eine Ausnahme. Nachricht, ich versuche OuttheInner Exception im Forum zu finden
|