Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 19471|Odpowiedź: 0

[Źródło] "Inicjalizator typu 'Emgu.CV.CvInvoke' wyrzucił wyjątek"?

[Skopiuj link]
Opublikowano 25.11.2015 10:57:59 | | |
Inicjalizator typu dla 'Emgu.CV.CvInvoke' wywołał anexception.
Jeśli zauważysz ten wyjątek, sprawdź następujące

Czy zainstalowałeś MSVCRT?
W wersji 2.0+ dołączony plik OpenCV 2.0 jest zbudowany w Visual Studio 2008, musisz zainstalować MSVCRT 9.0 SP1, aby rozwiązać problem zależności.
W wersji 1.5 dołączony plik OpenCV pre1.1 jest zbudowany w Visual Studio 2005, musisz zainstalować MSVCRT 8.0 SP1, aby rozwiązać problem zależności.
Czy skopiowałeś dll-e OpenCV do katalogu wykonawczego?
Upewnij się, że niezarządzane DLL znajdują się w katalogu wykonawczym.
Dla wersji Emgu CV <= 2.1 oznacza to następujące dll: cvXXX.dll, cvauxXXX.dll, cxcoreXXX.dll, highguiXXX.dll, opencv_ffmpegXXX.dll mlXXX.dll andcvextern.dll, gdzie XXX to OpenCV Numer wersji.
Dla wersji CV Emgu >= 2.2 oznacza to następują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 gdzie XXX to numer wersji OpenCV.
Najlepszym sposobem na przygotowanie projektu jest następujące:
Skopiuj niezarządzane DLL do folderu projektu
Kliknij prawym przyciskiem myszy na projekt, kliknij Add->ExistingItem i wybierz wszystkie niezarządzane DLL. Dodaj je do projektu.
Dla każdego z dołączonych DLL-ów kliknij lewym przyciskiem myszy, znajdź opcję "Kopiuj do katalogu wyjściowego" i wybierz "Kopiuj, jeśli jest nowszy".
Czy używasz 32-bitowego systemu operacyjnego?
Instalator Windows jest dostępny tylko dla 32-bitowych okien. Jeśli używasz systemu operacyjnego 64-bitowego, istnieją trzy możliwe sposoby rozwiązania tego problemu:

Możesz pobrać pakiet zip tylko do binarnego pliku 64-bitowego z Sourceforge i dodać go do swojego projektu.
Możesz także przekompilować OpenCV ze źródła dla platformy 64-bitowej. Zobacz instrukcje budowy od SVN
Alternatywnie możesz wymusić działanie aplikacji .NET w trybie 32-bitowym, nawet na 64-bitowym systemie. Aby to zrobić, na stronie konfiguracyjnej swojego projektu wykonywalnego wybierz Platform Target jako 'x86'.
Czy brakuje ci jakiegoś uzależnienia?
Pobierz Dependency Walker i użyj go do otwarcia pliku "cvextern.dll". Sprawdź, czy nie brakuje jakiegoś uzależnienia.

Sprawdziłem wszystko powyżej, ale nadal mam wyjątek
W takim przypadku proszę spróbuj zbudować i uruchomić przykłady. Po zbudowaniu przykładów spróbuj uruchomić program "Hello World".

Jeśli "Hello World" działa bez problemu, porównaj go z youproject, znajdź różnicę w konfiguracji i napraw ją.

Jeśli "Hello World" dostaniesz ten sam "Inicjalizator typu dla 'Emgu. CV.CvInvoke' rzucił wyjątek." spróbuj znaleźć InnerException i zgłoś to na forum dyskusyjne



Inicjalizacja typu EMGU. CV. CVINVOKE 'wstawiaj wyjątki.
Jeśli zauważysz ten wyjątek, sprawdź następujące
Czy zainstalowałeś msvcrt?
Wersja 2+, dołączony opencv 2 binary, służy do budowania Visual Studio 2008, a do rozwiązania problemów z zależnościami trzeba zainstalować edmsvcrt 9 SP1.
W wersji 1.5, dołączonej do pakietu OpenCV pre1.1 w wersji binarnej Visual Studio 2005, będziesz musiał zainstalować edmsvcrt 8 SP1, aby rozwiązać problemy z zależnościami.
Katalog wykonania Opencv DLL, który skopiowałeś?
Upewnij się, że niezarządzane DLL znajduje się w katalogu wykonawczym.
Dla wersji emgu CV< = 2.1, co oznacza następujące DLL:cvxxx.dll,cvauxxxx.dll,cxcorexxx. DLL, highguixxx.dll, opencv_ffmpegxxx.dll mlxxx.dll andcvextern.dll gdzie xxx to numery wersji opencv.
Dla wersji emgu CV> = 2.2 Oznacza to, że następujący 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 to numer wersji opencvversion.
Najlepszym sposobem na zbudowanie projektu jest następujące:
Niezarządzane DLL skopiowane do folderu projektu
Kliknij prawym przyciskiem myszy na projekt i kliknij Dodaj-> istniejący, aby zaznaczyć wszystkie niezarządzane DLL. Dodaj je do projektu.
Dla każdego DLL, które zawiera, kliknij lewym przyciskiem myszy, znajdź opcję "Kopiuj i wyjdź katalog", wybierz "Kopiuj, jeśli zaktualizowano"
Czy używasz 32-bitowego systemu operacyjnego?
Instalator Windows może udostępnić tylko 32-bitowy Windows. Jeśli używasz systemu operacyjnego 64-bitowego, istnieją trzy możliwe sposoby rozwiązania tego problemu:
Możesz pobrać pakiet zip tylko w 64-bitowym systemie binarnym fromsourceforge i dodać go do swojego projektu.
Możesz także kompilować źródła OpenCV z platform 64-bitowych. Zobacz dyrektywę budowlaną od SVN
Albo możesz wymusić swoje. Aplikacje .NET działają w trybie 32-bitowym, nawet na 64-bitowych systemach operacyjnych. Aby to zrobić, na stronie konfiguracji projektu wykonania wybierz cel platformy jako 'x86".
Czy brakuje ci jakichś zależności?
Pobierz Dependent Walker i użyj go do otwarcia "pliku cvextern DLL." ”。 Sprawdź, czy brakuje jakichś zależności.
Sprawdziłem wszystko powyżej, ale nadal są wyjątki
W takim przypadku spróbuj zbudować i uruchomić instancję. Po zbudowaniu instancji spróbuj uruchomić program Hello World.
Jeśli Hello World działa bez problemów, porównuje się z twoim projektem, znajduje różnice strukturalne i rozwiązuje problem.
Jeśli "hello world" dostanie to samo "type initial value setter for'emgu". CV. cvinvoke" rzuca wyjątek. Wiadomość, próbując znaleźć wyjątek na forum





Poprzedni:Szczegółowy poradnik dotyczący bransoletki 0 Yuanlu Xiaomi i innych produktów
Następny:C# importuje i wywołuje funkcje API Win32 za pomocą DllImport
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com