Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 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.
Вы копировали dlls OpenCV в каталог исполнения?
Убедитесь, что неуправляемые DLL находятся в директории исполнения.
Для версии Emgu CV <= 2.1 это означает следующие dlls: 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» и выберите «Копировать, если новее»
Вы используете 32-битную операционную систему?
Установщик Windows доступен только для 32-битных окон. Если вы используете 64-битную ОС, есть три возможных способа решения этой проблемы:

Вы можете скачать 64-битный бинарный zip-пакет с sourceforge и добавить его в свой проект.
Вы также можете перекомпилировать OpenCV с исходного кода для 64-битной платформы. См. инструкцию по сборке fromSVN
В качестве альтернативы можно заставить ваше .NET-приложение работать в 32-битном режиме, даже на 64-битной ОС. Для этого на странице конфигурации исполняемого проекта выберите Target платформы как '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 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, где xxx — номера версий opencv.
Для версии эмгу 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 в нём кликните левой кнопкой мыши, найдите опцию «Копировать и вывести каталог», выберите «Копировать при обновлении»
Вы используете 32-битную операционную систему?
Windows Installer может предоставлять только 32-битную Windows. Если вы используете 64-битную операционную систему, есть три возможных способа решения этой проблемы:
Вы можете скачать 64-битный бинарный zip-пакет с sourceforge и добавить его в свой проект.
Также можно компилировать исходные коды OpenCV с 64-битных платформ. См. директиву Building fromsvn
Или можешь заставить свой. .NET-приложения работают в 32-битном режиме, даже на 64-битных операционных системах. Для этого на странице конфигурации вашего проекта по выполнению выберите цель платформы как 'x86".
Вы упускаете какие-то зависимости?
Скачайте Dependent Walker и используйте его, чтобы открыть «cvextern DLL-файл». ”。 Проверьте, не хватает ли зависимости.
Я проверил всё вышеперечисленное, но у меня всё равно есть исключения
В этом случае попробуйте собрать и запустить инстанс. После создания экземпляра попробуйте запустить программу Hello World.
Если Hello World работает без проблем, он сравнивает с youproject, находит структурные различия и решает их.
Если «hello world» получит тот же «ввести начальный задаватель значения для emgu». CV。 Cvinvoke» — исключение. Сообщение, пытаюсь выяснитьInnerexception на форуме





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

Mail To:help@itsvse.com