Inicializátor typu pro 'Emgu.CV.CvInvoke' hodil výjimku. Pokud tuto výjimku uvidíte, zkontrolujte prosím následující
Nainstaloval jsi MSVCRT? Pro verzi 2.0+ je přibalený OpenCV 2.0 binární soubor sestaven ve Visual Studio 2008, budete muset nainstalovat MSVCRT 9.0 SP1, abyste vyřešili závislostní problém. Pro verzi 1.5 je přibalený OpenCV pre1.1 binární soubor vytvořen ve Visual Studio 2005, budete muset nainstalovat MSVCRT 8.0 SP1, aby se vyřešil závislostní problém. Zkopíroval jsi OpenCV dll do adresáře pro vykonání? Ujistěte se, že nespravované DLL jsou v adresáři pro vykonání. Pro verzi Emgu CV <= 2.1 to znamená následující dll: cvXXX.dll, cvauxXXX.dll, cxcoreXXX.dll, highguiXXX.dll, opencv_ffmpegXXX.dll mlXXX.dll andcvextern.dll, kde XXX je OpenCV Číslo verze. Pro verzi Emgu CV >= 2.2 to znamená následující 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, kde XXX je číslo verze OpenCV. Nejlepší způsob, jak nastavit svůj projekt, je: Zkopírujte nespravované DLL do složky projektu Klikněte pravým tlačítkem na projekt, klikněte na Add->ExistingItem a vyberte všechny nespravované DLL. Přidejte je do projektu. Pro každou z přiložených DLL klikněte levým tlačítkem, vyberte možnost "Kopírovat do výstupního adresáře" a zvolit "Kopírovat, pokud je novější" Používáte 32bitový operační systém? Instalátor Windows je dostupný pouze pro 32bitová okna. Pokud používáte 64bitový operační systém, existují tři možné způsoby, jak tento problém vyřešit:
Můžeš si stáhnout zip balíček pouze pro 64bitový binární soubor z FromSourceForge a přidat ho do svého projektu. OpenCV můžete také překompilovat ze zdrojového kódu pro 64bitovou platformu. Viz návod pro sestavení ze SVN Alternativně můžete donutit svou .NET aplikaci běžet v 32bitovém režimu, i na 64bitovém OS. K tomu zvolte na konfigurační stránce vašeho spustitelného projektu Platform Target jako 'x86'. Chybí ti nějaká závislost? Stáhněte si Dependency Walker a použijte ho k otevření souboru "cvextern.dll". Zkontrolujte, jestli nějaká závislost nechybí.
Zkontroloval jsem vše výše uvedené, ale přesto jsem dostal výjimku V tomto případě se prosím pokuste vytvořit a spustit příklady. Po sestavení příkladů zkuste spustit program "Hello World".
Pokud "Hello World" běží bez problémů, porovnejte ho s youproject, najděte rozdíl v konfiguraci a opravte ho.
Pokud "Hello World" dostane stejný "The type initializer for'Emgu. CV.CvInvoke' vyhodil výjimku." zkus zjistit InnerException a nahlásit to diskusnímu fóru
Inicializace typu EMGU. CV. CVINVOKE 'Uveďte výjimky. Pokud tuto výjimku uvidíte, zkontrolujte prosím následující Nainstaloval jsi msvcrt? Verze 2+, přibalený opencv 2 binární soubor slouží k sestavení Visual Studio 2008 a budete muset nainstalovat edmsvcrt 9 SP1 pro vyřešení závislostí. Pro verzi 1.5, která je součástí balíčku OpenCV pre1.1 binární verze Visual Studio 2005, budete muset nainstalovat edmsvcrt 8 SP1, abyste vyřešili závislostní problémy. Adresář pro spuštění opencv DLL, který jste zkopíroval? Ujistěte se, že nespravovaná DLL je v adresáři pro vykonání. Pro verzi emgu CV = 2.1< což znamená následující DLL:cvxxx.dll,cvauxxxx.dll,cxcorexxx. DLL, highguixxx.dll, opencv_ffmpegxxx.dll mlxxx.dll andcvextern.dll kde xxx jsou čísla verzí opencv. Pro >verzi emgu CV = 2,2 To znamená, že následující 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 je číslo opencvversion. Nejlepší způsob, jak svůj projekt postavit, je: Nespravované DLL zkopírované do složky vašeho projektu Klikněte pravým tlačítkem na projekt a klikněte na Add-> existingitem pro výběr všech nespravovaných DLL. Přidejte je do projektu. Pro každou DLL, kterou obsahuje, klikněte levým tlačítkem na ni, vyberte možnost "Kopírovat a vypisovat adresář" a vybrat "Kopírovat, pokud je aktualizováno" Používáte 32bitový operační systém? Windows Installer může poskytovat pouze 32bitový Windows. Pokud používáte 64bitový operační systém, existují tři možné způsoby, jak tento problém vyřešit: Můžete si stáhnout zip balíček pouze pro 64bitový binární soubor z fromsourceforge a přidat ho do svého projektu. Také můžete zkompilovat zdrojové kódy OpenCV z 64bitových platforem. Viz stavební směrnice SVN Nebo si to můžete vynutit vy. .NET aplikace běží v 32bitovém režimu, dokonce i na 64bitových operačních systémech. K tomu na konfigurační stránce vašeho projektu zvolte cíl platformy jako 'x86". Chybí vám nějaké závislosti? Stáhněte si Dependent Walker a použijte ho k otevření "cvextern DLL souboru." ”。 Zkontrolujte, jestli nechybí nějaké závislosti. Zkontroloval jsem vše výše uvedené, ale stále mám výjimky V takovém případě zkuste vytvořit a spustit instanci. Po sestavení instance zkuste spustit program Hello World. Pokud Hello World běží bez problémů, porovná se s youprojectem, najde strukturální rozdíly a vyřeší je. Pokud "hello world" dostane stejnou "napiš počáteční hodnotu setter for'emgu". CV. cvinvoke" přidává výjimku. zpráva, snažím se zjistit innerexception na fóru
|