전체 글 389

* 헝가리언 표기법(Hungarian notation)

* 헝가리언 표기법(Hungarian notation) 10, 15년 전 Microsoft의 개발자 중 헝가리 사람의 프로그래머가 쓰던 변수 명명법. MS내부에서 따라 쓰기 시작하던 것이 점차 전세계의 프로그래머들에게 널리 퍼져 이젠 프로그램 코딩 시 변수 명명의 표준적인 관례가 되었다. 그러나 실제로 현장에서 일하다 보면 헝가리언 표기법을 제대로 지키는 개발자는 그리 많지 않다. 어느 정도 개발 경험을 가지고 있는 프로그래머는 물론 심지어 시중의 프로그래밍 서적에서 조차 저자마다 변수명을 개인에 따라 가지각색으로 짓고 있어서 처음 프로그램을 배우는 입문자들이 변수 명명에 대한 기준을 제대로 잡지 못하고 있는 실정이다. 솔직히 필자도 얼마전까지 이런 변수 명명에 대한 관례를 잘 지키지 않았다. 그러나 변..

C, C++ 문법 2008.08.27

ie7에서 self close

기존에는 "창을 닫으시겠습니까?" 메시지를 띄우지 않을려면 self.opener = self; self.close(); 위처럼만 해주면 되었지만 IE 7에서는 적용이 되지 않는다. 아래 코드는 IE 7에서 위와 같은 역할을 하는 코드이니 참고바란다. if (/MSIE/.test(navigator.userAgent)) { if(navigator.appVersion.indexOf("MSIE 7.0")>=0) { window.open('about:blank','_self').close(); } else { window.opener = self; self.close(); } }

웹, HTML 2008.08.26

ATL_COM Event 사용 하기. COM

ATL_COM Event 사용 하기. COM 화면 캡처: 2007-10-11, 오후 9:29 ================ COM SERVER 만들기 =========================== 1. 프로젝트 생성 ALT COM . 2. 클래스를 만들때 클래스 오브젝트를 사용하여 만든다. - 속성에서 Connection Port 를 체크하여 이벤트를 지원하게 만든다. 3. 현재까지는 가상접근(VB,SCRIPT)을 위한 이벤트관련 코드가 생성되있다. 이것을 직접접근가능한( C++ ) 이벤트 관련 코드도 추가한다. // idl 파일에서 아래의 코드를 비슷한 코드 밑에 추가한다. 전부.. [ object, uuid(4A1B430E-FF18-4974-BC4B-30DFC1E33B08), // 각자 수정 du..

COM, ATL 2008.08.20

Property 와 Method 클라이언트 사용 구현부분 참조

Property Put HRESULT hr; // 0. IDispatch 인터페이스를 구현하는 객체 생성 IDispatch pIDisp; pIDisp.CreateInstance(_T("{XXX-XXX...X-XXX}")); // 1. Property의 Dispatch ID를 구함 OLECHAR * szMethodName = L"MyProperty"; DISPID dispidProperty; hr = dispidMethod->GetIDsOfNames(IID_NULL, &szMethodName, 1, LOCALE_USER_DEFAULT, &dispidProperty); // 2. 매개변수 준비 // MyProperty가 BSTR 타입인 경우 VARIANT varArg;// 입력 매개변수용 VARIANT va..

COM, ATL 2008.08.19

COM인터페이스 디자인 가이드

COM인터페이스 디자인 가이드 이재규 (영산정보통신) Microsoft는 표준 인터페이스를 제공함과 더불어 커스텀 인터페이스를 쉽게 정의할 수 있게 해 준다. 커스텀 인터페이스는 표준 인터페이스로는 표현할 수 없는 서비스를 구현하기 위해서 사용된다. 인터페이스는 재사용되는 경우가 많고, 원칙적으로 변경되어서는 안되기 때문에 인터페이스를 새로 만드는 일은 매우 신중해야 한다. 이 글에서는 커스텀 인터페이스를 만들때 고려해야할 디자인 요소에 대해서 살펴본다. MS의 컴포넌트 기술 Microsoft의 컴포넌트 기술은 COM / OLE / ActiveX 등으로 혼돈스런 명칭이 붙어 있다. 엄밀한 의미에서 구분을 해 본다면, COM(Component Object Model)은 인터페이스, COM 클래스, COM객..

COM, ATL 2008.08.18

lcid 로케일

스트링은 유니코드를 사용하라. COM은 내부적으로도 대외적으로도 유니코드를 사용한다. 유니코드는 MBCS(Multi-Byte Code System)와 달리 아시아계 문자 뿐 아니라, 영어권 문자도 2바이트를 사용한다. 이로 인해 아시아계 문자와 영어권 문자의 표현 크기가 틀려서 생기는 코딩의 어려움을 해결할 수 있다. 유니코드는 프로그래머의 편의보다도, 전세계 문자를 하나의 코드체계에 포함시킨 것에 더 큰 의미를 가지고 있다. COM 인터페이스는 잘 정의된다면 전세계적으로 통용되는 것이다. 따라서 스트링의 표현을 유니코드로 하는 것은 자연스러운 일이다. Visual C++에서 유니코드 문자 데이타는 WCHAR 혹은 OLECHAR 타입으로 정의되어 있다. 또한 리터럴(literal)을 유니코드로 지정할 경..

COM, ATL 2008.08.18

스레드 V의 노트

- Thread - 귀가 닳도록 들어온 워커스레드와 UI스레드. 그리고 스레드와 관련된 숱한 의혹과 혼란은 간혹 프로그래밍 할 맛을 뚝 떨어뜨리기도 한다. 그러나 세상에 좋은걸 쉽게 얻을수 있는게 어디 있으랴. 보다 좋은 성능에 보다 매끄러운 결과물을 만들기 위해서는 피해갈수 없는 길이 스레드다. 그만큼 잘 쓰면 프로그램을 빛나게 하지만 잘못쓰면 그냥 망한다. 그리고 알아야 할것이 한두가지가 아니다. 이렇게 복합적인 지식을 요구하기 때문에 스레드가 어렵게 느껴질수 있다. 적어도 멀티스레드로 들어가기 시작하면... 그래서 기초책에서 설명하는 그렇고 그런 진부한 내용은 다 집어치우고, 또 잘 설명해 주지도 않는 UI 스레드도 제대로 알아볼겸 MFC에서 스레드가 어떻게 동작하는지 MFC 소스코드를 살펴보고 멀..

API 2008.08.15

- 윈도 프로그램의 시작과 끝. "Message" -

- 윈도 프로그램의 시작과 끝. "Message" - ------------------------------------------------------------ 지긋지긋한 추위속의 겨울이 한창입니다. 뜨거웠던 지난여름이 어제 같은데.. 정말 계절의 변화란 신기합니다. 저는 계절의 변화를 그림자의 길이로 가장 먼저 느끼는 버릇이 있습니다. 가령 그림자가 길어지면 겨울이 온다는걸 느끼죠. 햇빛의 입사각에 따라 계절의 분위기를 느끼는 건데 몇일전 정오를 약간 지난 시각에 봄의 분위기를 느낄수 있었습니다. 한창의 겨울은 곧 봄이 옴을 암시하기도 하는거죠. 프로그래머의 실력도 그렇지 않을까 합니다. 한참 능력의 한계에 숨이 턱턱 차오를때, 바로 그때가 한계단 올라서는 순간이 머지 않을때 이기도 하죠. ^_^; ..

API 2008.08.15