Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 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 це означає такі 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, де XXX — це номер версії OpenCV.
Найкращий спосіб налаштувати свій проєкт так:
Скопіюйте некеровані DLL у вашу папку проєкту
Клацніть правою кнопкою миші на проєкті, натисніть Add->ExistingItem і виберіть усі некеровані DLL. Додайте їх до проєкту.
Для кожного з включених DLL натисніть лівою кнопкою миші, знайдіть опцію "Copyto Output Directory" і виберіть "Копіювати, якщо новіше"
У вас 32-бітна ОС?
Інсталятор Windows доступний лише для 32-бітних вікон. Якщо ви використовуєте 64-бітну ОС, існує три можливі способи вирішити цю проблему:

Ви можете завантажити 64-бітний бінарний 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 бінарної збірки 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, яку він містить, клацніть лівою кнопкою миші, знайдіть опцію «Копіювати та вивести каталог», виберіть «Копіювати, якщо оновлено»
Ви використовуєте 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" отримає те саме "ввести початковий встановлювач значення для emgu". CV。 Cvinvoke» робить виняток. повідомлення, намагаюся знайти innerexception на форумі





Попередній:Детальний посібник для браслета Xiaomi 0 Yuanlu та інших продуктів
Наступний:C# імпортує та викликає функції API Win32 через DllImport
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com