이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 19471|회답: 0

[출처] "'Emgu.CV.CvInvoke'의 타입 초기화가 예외를 던졌다"?

[링크 복사]
게시됨 2015. 11. 25. 오전 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을 설치해야 합니다.
OpenCV dlls를 실행 디렉터리에 복사해 보셨나요?
관리되지 않은 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의 경우, 이는 다음과 같은 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에 대해 왼쪽 클릭한 후 "출력 디렉터리 복사" 옵션을 찾아 "최신 버전 복사"를 선택하세요
32비트 OS를 사용 중인가요?
윈도우 설치 프로그램은 32비트 윈도우에서만 사용할 수 있습니다. 64비트 운영체제를 사용 중이라면, 이 문제를 해결할 수 있는 세 가지 방법이 있습니다:

sourceforge에서 64비트 바이너리 전용 zip 패키지를 다운로드해서 프로젝트에 추가할 수 있습니다.
OpenCV는 64비트 플랫폼용으로 소스에서 다시 컴파일할 수도 있습니다. Build에 대한 자세한 설명은 SVN에서 확인하세요
또는 .NET 애플리케이션을 64비트 운영체제에서도 32비트 모드로 강제로 실행할 수도 있습니다. 이를 위해 실행 프로젝트 구성 페이지에서 Platform Target을 'x86'으로 선택하세요.
의존성이 빠져 있나요?
Dependency Walker를 다운로드해서 "cvextern.dll" 파일을 열어보세요. 의존성이 없는지 확인하세요.

위 모든 항목을 확인했지만 여전히 예외가 발생했습니다
이 경우에는 예제를 만들고 실행해 보시길 바랍니다. 예제를 만든 후에는 "Hello World" 프로그램을 실행해 보세요.

"Hello World"가 문제없이 실행된다면, YouProject와 비교해 설정의 차이를 찾아 수정하세요.

"Hello World"가 같은 "Emgu의 타입 초기화자"를 받으면 CV.CvInvoke'가 예외를 던졌습니다." 메시지를 확인해 토론 포럼에 신고해 보세요



EMGU의 타입 초기화. 코로나 바이러스. cvinvoke는 예외를 두었습니다.
이 예외를 보시면 다음 사항을 확인해 주세요
msvcrt를 설치하셨나요?
버전 2+, 번들로 제공되는 opencv 2 바이너리는 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의 버전 번호입니다.
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비트 운영체제를 사용 중이라면, 이 문제를 해결하는 세 가지 방법이 있습니다:
sourceforge에서 64비트 바이너리 전용 zip 패키지를 다운로드해서 프로젝트에 추가할 수 있습니다.
64비트 플랫폼에서 OpenCV 소스를 컴파일할 수도 있습니다. 건축 fromsvn 지침을 참조하세요
아니면 강제로 할 수도 있고요. .NET 애플리케이션은 64비트 운영체제에서도 32비트 모드로 실행됩니다. 이를 위해 실행 프로젝트의 설정 페이지에서 플랫폼 타겟을 'x86"으로 선택하세요.
혹시 빠진 의존성이 있나요?
Dependent Walker를 다운로드해서 "cvextern DLL 파일"을 열어보세요. ”。 의존성이 빠진 게 있는지 확인해보세요.
위 모든 항목을 확인했지만 여전히 예외가 있습니다
이 경우에는 인스턴스를 구축하고 실행해 보세요. 인스턴스를 구축한 후에는 Hello World 프로그램을 실행해 보세요.
Hello World가 문제없이 실행된다면, YouProject와 비교해서 구조적 차이를 찾아내서 해결합니다.
"hello world"가 같은 "type initial value setter for'emgu"를 받는다면, 코로나 바이러스. "cvinvoke"는 예외를 던집니다. 포럼의 innerexception을 찾으려는 메시지





이전의:0 위안루 샤오미 팔찌 및 기타 제품에 대한 상세 튜토리얼
다음:C#은 DllImport를 통해 Win32 API 함수를 가져오고 호출합니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com