스크롤 위치 알아내기 (출처: http://microdev.pe.kr/86 ) 일반적으로 웹페이지의 스크롤 위치를 알아내려면 아래와 같이 IHTMLElement인터페이스를 사용하면 된다. [-] Collapse IHTMLElement2::get_scrollLeft() IHTMLElement2::get_scrollTop() 만약, get_scrollLeft() 또는 get_scrollTop() 으로 얻은 값이 0 이면 루트의 IHTMLElement 인터페이스를 사용하면 정확한 스크롤 위치를 얻을 수 있다. [-] Collapse long x = 0, y = 0; IHTMLElement2->get_scrollLeft( &x ); IHTMLElement2->get_scrollTop( &y ); // 0 이면,..
동감하는 내용~ 그러나 테스트를 안해봐서 뭐라 못하겠음... ^^ http://microdev.pe.kr/53 에서 퍼옴 ExtTextOut API 를 통해 빠르고 간단하게 특정 사각형 영역에 색을 칠할 수 있다. FillRect API 는 브러시 리소스를 관리해야 된다는 단점이 있고, PatBlt API도 빠르지만 FillRect 와 일맥상통하게 브러시를 관리해야 한다는 불편함이 있다. void PaintRect(HDC hdc, RECT *rect, COLORREF colour) { COLORREF oldcr = SetBkColor(hdc, colour); ExtTextOut(hdc, 0, 0, ETO_OPAQUE, rect, "", 0, 0); SetBkColor(hdc, oldcr); } 간단하게 ..
잘 정리했습니다~ MFC 에 대해서 쓰긴 했지만, ATL도 거의 비슷한 구조를 가지고 있습니다. ATL은 호출 속도를 빠르게 하려고 꽁수(!)을 부리긴 했네요~ 출처 : http://cafe.naver.com/pplus.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=168 MFC에서 윈도우에 관련된 클래스는 CWnd이다. CWnd는 윈도우에 관련된 수백개의 함수를 갖고 있다. MFC로 윈도우를 생성하기 위해서는 반드시 CWnd 클래스를 상속받게 되는데, 이 때 CWnd 클래스의 모든 멤버 함수가 virtual 이라면, 그에 따른 함수테이블이 생성되기 때문에 적지 않은 메모리 낭비가 발생한다. MFC에서는 이런 메모리 낭비를 막기 위해 virtual을 사용하지 않고 모든 ..
가려운 곳을 전반적으로 다 긁어준 쓸 수 있는 좋은 자료네용~ 출처: http://blog.naver.com/darkyeon/70014016214 I. 쓰레드 기본 1. 개요 1) 쓰레드 정의 : 프로그램이 실마리를 풀어가듯 순서대로 진행되어 나가는 흐름. - 쓰레드는 커널 오브젝트의 일종이다. 2) 커널 오브젝트 - 운영체제(operating system) : H/W를 유기적으로 작동할 수 있도록, 혹은 다른 프로그램 들이 컴퓨터의 하드웨어를 이용하여 잘 수행될 수 있도록 해주는 소프트웨어. . 운영체제가 하는 일 ① 여러개 프로그램을 동시에 실행될 수 있도록 순서를 정하고, 하나의 프로그램이 실행 될 수 있는 시간을 정한다. 즉, 프로세스를 관리한다. ② 여러개의 프로그램이 메모리등의 자원을 공유 할..
윈도우 버전만 잘 알아서 디버그 심볼 설치 파일을 받으면 된다 그다지 신통치 않으면 이렇게 해보자. windbg 가 설치된 폴더를 잘 보면, symchk.exe 라는 심볼 유틸리티가 있다. 이것으로 강제로 가지고 오도록 하자. symchk /r c:\windows\system32 /s SRV*C:\debugsymbols*http://msdl.microsoft.com/download/symbols 앞에 주소는 체크할 바이너리가 있는 곳이고, 뒤에 주소는 심볼 서버 주소에, 심볼을 저장할 위치이다. http://support.microsoft.com/kb/311503 여기서 발췌함 WinDbg 안에서 처리하려면... .sympath SRV*f:\localsymbols*http://msdl.microsoft...
비스타 이전에는 굳이 설정안해도 verbose 모드이면 디버그 메시지가 잘 나왔었던 것 같다. 그런데, 비스타부터는 디버그 메시지 필터링 레지스트리를 설정해야 한다. 이유인즉 비스타부터서는 DbgPrint 를 DbgPrintEx 로 매핑시켰기 때문이란다(http://www.osronline.com/article.cfm?article=295). DbgPrintEx는 레지스트리 설정값에 따라 출력할 수도 안할 수도 있다. 간단하게 모든 디버그 메시지를 보고 싶다면, WinDbg 프롬프트에서 ed Kd_DEFAULT_MASK 0xf 이제부터 잘 보인다. 물론 재부팅 후에는 다시 설정해 줘야 한다. 귀찮으니까, 디버깅을 할 PC에서 레지스트리를 설정해 버리자. 레지스트리 HKLM\SYSTEM\Current Co..
다음 글(http://gurugio.blogspot.com/2010/03/blog-post_07.html)에 동감한다. 이걸 쓰분은 자기만의 OS 를 만들고 있다. 참 부럽다. 완성도는 나중이고 일단 발걸음을 떼자. 공부위해서거나 포트폴리오를 준비하기 위해서 개인 프로젝트를 기획하고, 개발하는 사람이 많은데 어떻게 관리를 하시는지는 모르겠다. 내가 생각하기에 개인 프로젝트를 오랫동안 유지하고, 꾸준히 개발하기 위해서는 몇가지 준비 사항이 있어야 한다. 특히 바뻐서 신경쓰지 못하다가도 시간이 생겼을때 다시 착수하기 위해서 개발 환경에 대한 준비가 철저해야 한다. 1. 소스 관리: 회사에서나 집에서나, 아니면 산속에서라도? 틈날때마다 개발하기 위해서 인터넷으로 소스를 관리할 수 있어야 한다. 구글 코드나 네..
WinDbg 관련 WinDbg 치트키! ㅎㅎ 실전 예화 1? ㅎㅎ 실전 예화 2? ㅎㅎ 실전 예화 3? ㅎㅎ 실전 예화 4? ㅎㅎ 윈도우 덤프 분석팀? 블로그 윈도우 커널 소스 구조? 그냥 그냥2 디버깅 튜토리얼~ vmware에서 잇기 윈어셈 + WinDbg 로 디버깅 OS 디버깅 심볼 받기 뭔가 재미난 사이트~ 게리 네벳(Windows NT/2000 Native API 저자로 리버싱에 달인인듯) 말많은 인캅스3 지우기 여기서 보려면 더보기 클릭~ incops3 제거 삭제 Uninstall 설치된 위치: C:/WINDOWS/incops3/ 레지스트리삭제, 서비스중지, 프로세스킬, msconfig 수정등을 해도 소용없는 뻘짓 해결방법 % cd C:\WINDOWS\incops3 None으로 권한변경 % ca..
선거철이다. 우라질 네이션... 미디어도 제압하고, 인터넷도 제압하려니 힘도 쎄다(http://news.hankooki.com/lpage/society/201003/h2010030809583822000.htm). 깍두기에 테러범까지 기용했나...(횟칼테러...) 이런 힘은 외교할때나 써먹어야 할텐데. 후일이 두렵지 않나... 역사는 이 사람을 뭐라 말할까... 뭐, 무력으로 수많은 사람을 보낸 분도 멀쩡이 살아있는 마당에. 나중에도 떵떵 거리고 살라고 발버둥 치는 이 분도 길이 길이 살겠구나. 죽음 따위는 그다지 생각지도 않을 듯 보인다. 참 무섭고 무섭고 더러운 세상이다. 오후 3:46 2010-03-18 유머도 안통하는 세상이다. 문화관광부에 윗분이 인터넷 문화도 이해 못하니 문화 발전에 뭘 바랄 수..