Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 19471|Отговор: 0

[Източник] "Инициализаторът на типа 'Emgu.CV.CvInvoke' направи изключение"?

[Копирай линк]
Публикувано в 25.11.2015 г. 10:57:59 ч. | | |
Инициализаторът на типа 'Emgu.CV.CvInvoke' направи изключение.
Ако видите това изключение, моля, проверете следното

Инсталирал ли си MSVCRT?
За версия 2.0+, включеният OpenCV 2.0 бинар е сглобен с Visual Studio 2008, трябва да инсталирате MSVCRT 9.0 SP1, за да решите проблема с зависимостите.
За версия 1.5, пакетираният OpenCV pre1.1 бинар е сглобен с Visual Studio 2005, трябва да инсталирате MSVCRT 8.0 SP1, за да решите проблема с зависимостите.
Копираш ли dll-овете на OpenCV в директорията за изпълнение?
Уверете се, че неуправляваните DLL-и са в директорията за изпълнение.
За Emgu CV версия <= 2.1 това означава следните dll-ове: cvXXX.dll, cvauxXXX.dll, cxcoreXXX.dll,highguiXXX.dll, opencv_ffmpegXXX.dll mlXXX.dll andcvextern.dll, където XXX е OpenCV Номер на версията.
За Emgu CV версия >= 2.2 това означава следните 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 е номерът на версията на OpenCV.
Най-добрият начин да настроите проекта си е:
Копирайте неуправляваните DLL-и в папката за проекта
Кликнете с десен бутон върху проекта, изберете Add->ExistingItem и изберете всички неуправлявани DLL. Добавете ги към проекта.
За всеки от включените DLL-ове, кликнете с ляв бутон, намерете опцията "Copyto Output Directory" и изберете "Copy, ако е нов"
Използвате ли 32-битова операционна система?
Windows инсталаторът е наличен само за 32-битови прозорци. Ако използвате 64-битова операционна система, има три възможни начина да решите този проблем:

Можеш да изтеглиш 64-битовия binary only zip пакет от sourceforge и да го добавиш към проекта си.
Можете също да рекомпилирате OpenCV от изходния код за 64-битова платформа. Вижте инструкцията за изграждане fromSVN
Алтернативно, можете да принудите .NET приложението да работи в 32-битов режим, дори на 64-битова операционна система. За да направите това, в конфигурационната страница на вашия изпълним проект изберете Platform Target as'x86'.
Липсва ли ти някаква зависимост?
Изтегли Dependency Walker и го използвай, за да отвориш файла "cvextern.dll". Провери дали липсва някаква зависимост.

Проверих всичко по-горе, но все пак получих theException
В този случай, моля, опитайте да изградите и пуснете примерите. След като създадете примерите, опитайте да стартирате програмата "Hello World".

Ако "Hello World" работи без проблем, сравнете го с youproject, намерете разликата в конфигурацията и я оправете.

Ако "Hello World" получи същото "Инициализаторът на типа за Emgu. CV.CvInvoke' хвърли изключение." съобщение, опитайте се да намерите InnerException и да го докладвате във форума за дискусии



Тип инициализация на emgu. CV. Cvinvoke 'Прави изключения.
Ако видите това изключение, моля, проверете следното
Инсталирал ли си msvcrt?
Версия 2+, пакетиран opencv 2 binary, е за сглобяване на Visual Studio 2008, и ще трябва да инсталирате edmsvcrt 9 SP1, за да решите проблеми с зависимостите.
За версия 1.5, в комплекта с OpenCV pre1.1 binary build Visual Studio 2005, ще трябва да инсталирате edmsvcrt 8 SP1, за да решите проблемите с зависимостите.
Директорията за изпълнение на opencv DLL, която копира?
Уверете се, че неуправляваната DLL е в директорията за изпълнение.
За версията на emgu CV< = 2.1, което означава следното DLL:cvxxx.dll,cvauxxxx.dll,cxcorexxx. DLL, highguixxx.dll, opencv_ffmpegxxx.dll, mlxxx.dll andcvextern.dll wherexxx са версионните номера на opencv.
За версията на emgu CV> = 2.2 Това означава, че следващата 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 е номерът на opencvversion.
Най-добрият начин да изградите проекта си е:
Неуправляван DLL е копиран в папката ти с проекта
Кликнете с десен бутон върху проекта и изберете Add-> existingitem, за да изберете всички неуправлявани DLL-ове. Добавете ги към проекта.
За всяка DLL, която съдържа, кликнете с ляв бутон, намерете опцията "Copy & Output Directory", изберете "Copy if updateed"
Използвате ли 32-битова операционна система?
Windows Installer може да предоставя само 32-битови Windows. Ако използвате 64-битова операционна система, има три възможни начина да решите този проблем:
Можете да изтеглите 64-битовия zip пакет само за двоичен файл от sourceforge и да го добавите към проекта си.
Можете също да компилирате OpenCV източници от 64-битови платформи. Вижте директивата на сградата fromsvn
Или можеш да го принудиш. .NET приложенията работят в 32-битов режим, дори на 64-битови операционни системи. За да направите това, на страницата за конфигурация на вашия проект за изпълнение изберете целевата платформа as'x86".
Липсват ли ти някакви зависимости?
Изтеглете Dependent Walker и го използвай, за да отвориш "cvextern DLL файла". ”。 Проверете дали липсват някакви зависимости.
Проверих всичко по-горе, но все още имам изключения
В този случай опитайте да изградите и пуснете инстанция. След като създадеш инстанцията, опитай да стартираш програмата Hello World.
Ако Hello World работи без проблеми, той се сравнява с youproject, открива структурни разлики и ги решава.
Ако "hello world" получи същото "type initial value setter for'emgu". CV. Cvinvoke" прави изключение. съобщение, опитвам се да разбера вътрешното изключение във форума





Предишен:Подробен урок за гривна Xiaomi 0 Yuanlu и други продукти
Следващ:C# импортира и извиква Win32 API функции чрез DllImport
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com