NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    Error Error 'OpenCvSharp.Internal.NativeMethods'의 형식 이니셜라이저에서 예외를 Throw했습니다.

    페이지 정보

    본문

    엔지엠 디자이너(NGM Designer)에서 제목과 같은 에러 메세지가 표시되는 경우 해결 방법입니다.

    [ ※ 필독 - 엔지엠 디자이너를 개발하기 위한 환경 구성 ]

    'OpenCvSharp.Internal.NativeMethods'의 형식 이니셜라이저에서 예외를 Throw했습니다.

     

    에러 내용을 보려면, 디자이너에서 아래와 같이 메세지를 받을 수 있어야 합니다.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace DesignerTest
    {
        public partial class Form1 : Designer.ComponentDefault.MainView
        {
            public Form1()
            {
                InitializeComponent();
    
                this.IsOutput = true;
                this.ShowDebugOutput = true;
                this.ShowConditionOutput = true;
            }
    
            public override void WriteOutput(string message)
            {
                this.richTextBox1.Invoke((Action)delegate 
                {
                    this.richTextBox1.AppendText(message);
                });
            }
        }
    }

     

    이 에러가 발생하는 이유는 C로 만들어진 OpenCV 확장 모듈이 없어서 발생합니다. 디자이너를 설치한 폴더로 이동해보면 아래와 같이 플렛폼(x64, x86) 별 폴더가 있습니다.

    3NmzVnL.png

     

     

    디자이너 프로젝트의 플랫폼에 맞는 폴더에 들어가세요. 프로젝트의 플랫폼을 확인하려면, 프로젝트에서 우클릭 후 속성을 선택하세요. 그리고, 아래 그림과 같이 빌드 탭을 눌러보면 플랫폼 대상에서 확인이 가능합니다. 기본적으로 32비트입니다. 플랫폼 대상을 Any CPU가 아닌 x64로 변경하면 64비트 프로그램이 됩니다.

    Gj2duMJ.png

     

     

    플랫폼을 확인했으면 해당 폴더로 들어가세요. 아래와 같이 3개의 파일이 보입니다.

    ZNY6Uax.png

     

     

    이 3개의 파일을 모두 복사 해줍니다. 그리고, 비주얼 스튜디오에서 프로젝트의 폴더(파일 탐색기에서 폴더 열기)로 이동하세요.

    SuosmqF.png

     

     

    위에서 복사한 3개의 파일을 프로젝트 루트에 붙여넣기 합니다.

    xysalAT.png

     

     

    모든 파일 표시를 체크하고, ②새로 고침을 눌러보세요. 그러면, ③3개 파일이 표시됩니다.

    JUHTQw3.png

     

     

    아래 그림처럼 3개 파일을 콘트롤키 누른 상태로 모두 선택합니다. 그리고, 우클릭하면 프로젝트에 포함 메뉴가 보일겁니다. 이걸 클릭하세요!

    v7N2oOP.png

     

     

    한번 더 우클릭한 후 속성을 선택하세요.

    J26Y2Qu.png

     

     

    출력 디렉터리에 복사에서 새 버전이면 복사를 선택 해줍니다.

    AP2stTa.png

     

     

    간단한 이미지 매치 액션을 테스트 해보세요. 아래와 같이 정상적으로 처리되는걸 확인할 수 있습니다.

    9zPKE9i.png

     

     

    참고로, 로그를 출력하는 메소드는 아래 코드를 사용하세요^^

            public override void WriteOutput(string id, string description, string message)
            {
                this.richTextBox1.Invoke((Action)delegate
                {
                    this.richTextBox1.AppendText(id ?? "");
                    this.richTextBox1.AppendText(description ?? "");
                    this.richTextBox1.AppendText(message + Environment.NewLine);
                });
            }

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.