본문 바로가기
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
구분 팁&트릭
출처 http://support.inishtech.com/FAQ108

한글에러: 응용 프로그램에 첫 번째 IWin32Window 개체가 만들어지기 전에 호출해야 합니다.

영문에러: setcompatibletextrenderingdefault must be called before the first


잘되다가 갑자기 이런 에러가 빡 나면... 아... 이게 뭔 에러인교?? 으악..... 삽질의 연속하다가 역시 구글링의 힘... 

역시 한글리소스는 없다. 제길슨.... 이글이 이 오류의 첫 한글 해답일까? 닷넷이 나온지 10년이 넘었는데...

아니면 내가 한글로는 검색을 못하는 건가? 

아니면 오류가 외국 사람들이랑 나만 났던 건가?


출처 링크에서는 코드 복사가 이상하게 된다. 모양은 똑같은데...  일일히 다 타이핑했다. 


별반 다를게 없는데 신기하게 여기서는 오류없이 실행된다. 함수 더 태운 이유 하나만으로... 


참고로 Application.SetCompatibleTextRenderingDefault(false);  이 구문에서

False일 경우 GDI사용, True일 경우 GDI+를 사용한다는 옵션이란다. 확인 못함. 


        [STAThread]
        static void Main()
        {
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

            InitialiseWinFormsSettings();

            try
            {
                Execute();
            }
            catch (Exception ex)
            {
                DumpException(ex, "Unhandled exeception(1)");
            }
        }

        private static void InitialiseWinFormsSettings()
        {
            Application.ThreadException += Application_ThreadException;
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
        }

        static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
        {
            DumpException(e.Exception, "Thread Exception");
        }

        static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
        {
            DumpException((Exception)e.ExceptionObject, "Unhandeld execption (2)");
        }

        static void DumpException (Exception exception, string title)
        {
            MessageBox.Show(exception.ToString(), title);
        }

        private static void Execute()
        {
            Application.Run(new frmLogin());
        }