본문 바로가기

Programing/C#20

윈도우 폼 1개만 띄우기 Popup형태로 윈도우 폼을 호출하는 경우, 그냥 생성 호출을 하면 Popup형태의 윈도우 폼이 클릭 수만큼 생성이 된다. 이를 방지하기 위해서는 윈도우 폼을 호출하는 버튼 앞에 이를 방지해주는 코드를 심으면 됨. Application.OpenForms를 이용하여 열려있는 Form을 FormCollection 형태로 받고 이를 foreach를 통해 특정 Form(Popup창으로 이용하는 form)의 Name을 비교하여 일치하는 것이 있으면 해당 form을 Activate 시켜주고, 해당하는 Form이 없으면 생성해주면 된다. private void button_Click(object sender, EventArgs e) { foreach(Form frm in Application.OpenForms) { .. 2017. 1. 16.
실행중인 프로그램 디버깅하기 클래스 라이브러리(DLL)로 개발하고, 다른 프로그램 내부에서 해당 dll을 호출하여 실행하는 경우 내가 작성한 클래스 라이브러리를 디버깅하는 방법을 몰라서 MessageBox를 이용하거나, GUI를 추가하여 데이터를 출력해서 확인했음. Visual Studio에서 '도구>프로세스 연결'을통해 실행되고 있는 내 dll에 연결하여 디버깅 할 수 있다는걸 이번에 알게 되었음. 이렇게 소소한 팁이 개발환경을 윤택하게 만들어준다니 : ) 2016. 12. 23.
Exception Code : 0xe053534f 프로그램 개발하는 도중 아래 에러로 프로그램이 뻗어버리는 경우가 발생함 Exception Code : 0xe053534f 다행히 개발하는 프로그램은 백그라운드에 콘솔창이 있어 에러를 간단하게나마 추적할 수 있는 실마리를 제공해줌. 콘솔창에 나타난 문장은 StackOverFlow. 프로그램이 죽을때 해당 내용을 확인하지도 않고, 계속해서 엉뚱한곳을 찾았었는데, 이것저것 다안되고 나서야 에러내용을 확인해야겠다는 생각을 하게 되었고, 아래 참조 사이트 내용을 읽으며 내가 작성한 코드의 구멍을 발견함. (참고 사이트 : http://www.sysnet.pe.kr/Default.aspx?mode=2&sub=0&detail=1&pageno=0&wid=602&rssMode=1&wtype=0) 해당 작성자분의 증상과 .. 2016. 12. 21.
동적 DLL Load Dll을 한 번 Load하고 나면, Unload를 할 수 없기 때문에 Load 했던 프로그램을 종료하고 다시 실행해야 하는 불편함이 있음. 재실행하는데 걸리는 시간이 짧은 경우에는 종료 후 재시작을 하면 되겠지만, 프로그램을 열고 닫는데 시간이 많이 걸리는 프로그램의 경우 여간 불편한게 아니다. 특히 프로그램을 개발하여 Test를 하기위해서는 수시로 dll을 load하고 수정하고 해야하는데, 재시작에 시간이 오래걸리는 프로그램의 경우 너무 불편함. 따라서 dll을 동적으로 Load 해주는 프로그램을 작성해서 프로그램을 개발하면 편리해질 거라고 생각하여 검색함. -- 동적 DLL Load 관련 내용-- 사이트(참조 사이트 : http://blog.danggun.net/2147)를 참조하여 delegate를.. 2016. 12. 19.