VC++6 VC.NET용 STL 에러 메시지 해독기의 빠른 설치 가이드 DarkKaiser, 2007년 7월 17일2023년 9월 6일 VC++6_VC.NET용_STL_에러_메시지_해독기의_빠른_설치가이드.zip Continue Reading
new가 실패했을때의 처리 DarkKaiser, 2007년 7월 17일2023년 9월 6일 데브피아 김용현님의 글 보통 프로그래밍을 할때 new에 대한 실패 처리는 해주지 않고 코딩을 합니다. 문자열이나 new 를 쓰지 않는 어플리케이션은 없다고 해도 틀린말은 아니고 다음과 같은 코드는 일반적으로 많이 쓰이는 코드 입니다.char* szName = new char[128]; new 에 대한 에러 처리는 하지 않습니다. 만일, 아주 큰 new 를 많이 해야 Continue Reading
STL 제네릭 알고리즘 정리 DarkKaiser, 2007년 7월 17일2023년 9월 6일 accumulate() 기본적으로, 컨테이너의 요소들을 세 번째 인수로 지정한 초기값에 모두 더합니다. 기본 덧셈을 오버라이딩하기 위해 이항 연산을 넘길 수 있습니다. #include <numericiresult = accumulate(ia, ia + 9, 0); iresult = accumulate(ilist.begin(), ilist.end(), 0, plus<int()); adjacent_difference() 기본적으로 주어진 열 내에서 인접하는 각 요소의 차이를 값으로 하는 새로운 열을 생성합니다. Continue Reading
MS VC++6.0 프로젝트를 svn에 넣을 때 ignore 시킬 파일들 DarkKaiser, 2007년 7월 17일2023년 9월 4일 MS VC++6.0 프로젝트를 svn에 넣을 때 ignore (무시) 시킬 파일들 목록 아래의 파일들은 프로젝트를 열거나 컴파일 하면 자동으로 생성되는 파일이므로 svn 에 추가해줄 필요가 없다. */Debug */Release *.aps *.ncb *.opt *.plg *.scc *.clw *.positions *. obj *.idb *.res *.pch *.trg *.exp *.tlb *.[Tt]mp *.~* *.[Bb][Aa][Kk] *.tlh *.tli *_i.c *_p.c dlldata.c Continue Reading
Developer Studio 파일 확장자 설명 DarkKaiser, 2007년 7월 17일2023년 9월 4일 APS 리소스 파일에 대한 바이너리 파일. App Studio에서 리소스 파일을 로딩하는데 사용된다.(로딩 속도 향상) BSC 소스 브라우저 정보 파일(Browser database file). 이 파일은 BSCMAKER.EXE를 실행할 때 SBR파일로부터 생성된다. CLW 클래스위저드 상태 파일. 클래스위저드를 사용하여 추가되는 메시지 핸들링 함수 등과 관련된 정보들이 포함된다. DSP 메이크 파일(MAK)과 동일한 목적의 파일로 VC++5.0에서 사용한다. Continue Reading
리더가 되는 길 DarkKaiser, 2007년 7월 17일2023년 8월 30일 출처 : http://blog.naver.com/j6040148/120035395394 ‘지도력은 타고나며 그리고 만들어지는 것이다’ 우리 모두는 지도력의 잠재성을 갖고 태어난다. 그러나 우리가 그것을 꺼내 시작하기 전에는 잠재력에 지나지 않는다. 역사 속의 가장 위대한 지도자들조차도 제자에서부터 시작했다. 우리 모두도 그렇다. 당신이 어린 아이였을 때, 누가 지도했는가, 당신인가 아니면 당신의 부모님인가? 당신이 고등학생이였을때는 어떠했는가? 대학 신입생 때에는? 당신의 Continue Reading
STL string_split() DarkKaiser, 2007년 7월 16일2023년 9월 4일 inline void string_split(const std::string& c_st_parent, const std::string& c_st_sep, std::vector<std* pvec_st_child) { string::size_type base = 0; string::size_type end = 0; string::size_type sep_len = c_st_sep.length(); pvec_st_child-clear(); /* pvec_st_child-reserve(16); 적당한 크기로 공간을 예약해 주면 좋겠죠 : ) */ while ( (end = c_st_parent.find_first_of(c_st_sep, base)) = 0) { pvec_st_child-push_back(c_st_parent.substr(base, end Continue Reading
USB장치 연결/연결해제 이벤트 처리하기 DarkKaiser, 2007년 7월 16일2023년 9월 4일 USB 장치가 연결되거나 해제 됐을 때는 이벤트를 처리하는 방법을 여기 저기 찾아 보다가 대충 적어봅니다. 1. 메시지 맵 등록 메시지 맵에 이벤트를 함수와 연결 시킨다. BEGIN_MESSAGE_MAP(CDlg, CDialog) ON_MESSAGE(WM_DEVICECHANGE, fnDeviceChange) END_MESSAGE_MAP() 2. 이벤트를 받을 장치를 등록한다. 장치 등록은 RegisterForDeviceNotifications()함수를 이용한다 void CDlg::RegisterForDeviceNotifications() { DEV_BROADCAST_DEVICEINTERFACE DevBroadcastDeviceInterface; HDEVNOTIFY DeviceNotificationHandle; DevBroadcastDeviceInterface.dbcc_size = sizeof(DevBroadcastDeviceInterface); DevBroadcastDeviceInterface.dbcc_devicetype Continue Reading
시스템 에러메시지 출력하기 DarkKaiser, 2007년 7월 16일2023년 9월 4일 시스템에서 발생한 에러 코드 번호를 그에 해당하는 에러 메시지로 변환하여 출력하는 소스 코드이다. void ShowErrorMsg() { LPVOID lpvMessage; /* retrieve a message from the system message table */ FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM, NULL, GetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&lpvMessage, 0, NULL); /* display the message in a message box */ MessageBox(hwndMain, lpvMessage, "Parent Message", MB_ICONEXCLAMATION|MB_OK); Continue Reading
상속과 합성 DarkKaiser, 2007년 7월 16일2023년 8월 30일 ‘Gof의 디자인 패턴’에서는 “Favor object composition over class inheritance”라고 말한다. 이를 해석하면 “객체 합성이 클래스 상속보다 더 나은 방법이다”라는 의미이다. 객체지향 시스템에서 기능의 재사용을 위한 가장 대표적인 두 가지 방법이 상속과 합성이다. 디자인 패턴에서는 상속을 통한 재사용을 ‘white-box reuse’라고 하고 합성을 통한 재사용을 ‘black-box reuse’라고 한다. 먼저, 상속에 대해 살펴보자. Continue Reading