본문 바로가기

컴퓨터219

원격 접속해서 컴퓨터 끄기 윈도우즈에서 원격 접속을 할 경우 접속당한 컴퓨터를 끄는 코드를 살펴 보자. 최종 사용자는 이 곳에 올려 놓는 exe 파일을 사용하면 끌 수 있다. 사용할 때, 접속이 끊기는데 끌 것이냐고 계속 묻는데 그럴 때마다 OK 를 누르면 꺼진다. 현재 시간과 사용자가 선택한 시간이 동일하면 꺼지거나 재부팅을 하게 된다. source code 는 Visual C++ 6.0 으로 작성되어 있으며, project file 을 이 곳에 올려 둔다 - 이것은 이 프로그램이 악성 프로그램은 아니라는 것을 보여주기 위함이기도 하다, ㅋ. 코드가 한 50여 줄 정도밖에 안되는 아주아주 간단한 프로그램이다. 공개할 목적으로 만든 건 아니고, 내가 필요해서 한 십여분 정도 뚝딱거려 만들어서 꽤 자주 사용하다가 생각이 나서 이 곳.. 2013. 1. 12.
unicode 와 ansi, std::string 과 CString 상호 변경하기 unicode 와 ansi 를 섞어 쓰면서 std::string 과 std::wstring, CString 을 상호 변환하는 방법을 살펴 보자. unicode 를 쓰면서 MFC에서 STL 을 쓰기 위해선 이들을 서로 변경해야 할 경우가 많아 이 곳에 정리해 둔다. 환경 : Visual Studio 2010 on Windows 7 Professional SP1, English, 64-bit. 우선 기본적으로 MFC에서 unicode 과 ansi 를 상호변환하기 위해서는 CF2CT 형식을 따르며, 이 때 F 와 T 는 A와 T 중 하나의 값이 될 수 있다. T는 _T macro 에서 알 수 있듯이 multibyte 로의 변환을 의미하는 것이고, A 는 ANSI 를 의미한다. 따라서 ansi 에서 unicod.. 2013. 1. 7.
Pie (파이) 그래프를 그려 보자 pie 그래프를 그려 보자. CDC::AngleArc 를 사용하면 아주 간편하게 그릴 수 있다. pie 그래프를 그리기 위해서는 우선 부채꼴을 그려야 할 것이다. 부채꼴을 그리기 위해서는 CDC::AngleArc 함수를 사용하면 되는데, 우선 프로그램 상에서의 좌표계를 살펴 보자. 모니터에서 0 도는 위와 같이 3시 방향이다. + 각도는 위처럼 반시계 방향으로 돌아가는 각도이다. 보통 sin 이나 cos 같은 수학함수의 파라미터는 단위가 radian 인데 AngleArc 는 (희안하게도 불편하게) degree 이다. 이 점을 주의하자. 어쨌든 위와 같다는 것을 기억하고, AngleArc 를 보면 다음과 같다. AngleArc 에서는 우선 모니터 좌표계로 중심점 (x,y) (위에서 푸른 점) 을 설정 후,.. 2013. 1. 5.
오랜 시행 후 프로그램이 멈추는 경우 - GDI 문제 다음과 같은 에러가 있다는 연락을 받았다. 1,2,3 trials을 한 번에 시행할 경우 중간에 멈추는 버그 발생 환경 : Visual Studio 2010 on Windows 7 Professional SP1, English, 64-bit. 각 trial 은 대략 50~60개의 이미지를 보여주고 환자의 입력을 받는 것인데, 각 이미지 사이에 무반응자극 이미지를 한 장씩 보여 주게 되어 있다. 이런 상황에서 위와 같은 에러가 발생했다는 것은 대략 GDI 에 관련한 문제임을 직감할 수 있다. 따라서 디버깅을 하기 위해 작업관리자에서 GDI Objects 의 개수를 보여 주는 컬럼을 켠 상태에서 프로그램을 실행시켰다. 역시나, 객체 수가 계속 올라 간다. 즉, 문제는, GDI 객체가 제대로 해제되지 않아서 .. 2013. 1. 1.