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
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
문자를 아스키 코드 번호로 변환, ASCII Code 를 문자(Char)로 변환 DarkKaiser, 2007년 7월 13일2023년 9월 5일 문자를 “아스키 코드 번호”로 변환하려면 ord() 함수를 사용합니다. 출력 결과를 10진수 숫자가 아닌 “16진수 문자열”로 출력하려면 hex() 함수를 사용합니다. 그 반대로, “아스키 코드 번호”를 “실제 문자”로 변환하려면 chr() 함수를 사용합니다.chr(0x5A) 이렇게 “16진수 숫자”를 넣을 수도 있습니다. 다음 예제는 알파벳 대문자 “Z” 를 변환하는 것입니다. 알파벳 대문자 “Z”의 아스키 코드는 Continue Reading
오늘 날짜, 현재 시간 구하기 DarkKaiser, 2007년 7월 12일2023년 9월 5일 #!/usr/bin/python # -*- coding: cp949 -*- import time now = time.localtime() print "현재 년: %d" % (now.tm_year) print "현재 월: %d" % (now.tm_mon) print "현재 일: %d" % (now.tm_mday) print print "현재 시: %d" % (now.tm_hour) # 24시간제 print "현재 분: %d" % (now.tm_min) print "현재 초: %d" % (now.tm_sec) Continue Reading
Assertion Lister DarkKaiser, 2007년 7월 11일2023년 9월 5일 DefaultTraceListener이 클래스의 객체는 Trace와 Debug 클래스의 Listeners 컬렉션에 자동으로 추가되며, Visual Studio.NET의 출력 창 또는 메시지 상자에 메시지를 출력하는 기능을 수행한다. TextWriterTraceListener이 클래스의 객체는 Stream 클래스로부터 파생된 클래스에 메시지를 출력한다. 따라서 콘솔이나 파일로 메시지를 출력할 때 사용할 수 있다. EventLogTraceListener이 클래스의 객체에서는 윈도우즈 운영체제의 이벤트 로그로 메시지를 Continue Reading
리치에디터컨트롤 2.0 사용하기 DarkKaiser, 2007년 7월 9일2023년 9월 6일 리치에디터 1.0 뷰를 상속한 뷰 클래스에서 리치에디터 2.0을 사용하고자 할 경우에는 아래와 같이 작업한다. /* H 파일 */ HINSTANCE m_hinstRichEdit2; /* CPP 파일 */ CRichEditSampleView::CRichEditSampleView() { m_hinstRichEdit2 = LoadLibraryA("RICHED20.DLL"); } CRichEditSampleView::~CRichEditSampleView() { if(m_hinstRichEdit2 != NULL) FreeLibrary(m_hinstRichEdit2); } BOOL CRichEditSampleView::PreCreateWindow(CREATESTRUCT& cs) { if(m_hinstRichEdit2) { #ifdef UNICODE m_strClass = "RichEdit20W"; #else m_strClass Continue Reading
VC6에서 리치에디트 컨트롤을 대화상자에 올리고 나서 런타임시에 대화상자가 뜨지 않는 문제 수정법 DarkKaiser, 2007년 7월 7일2023년 9월 6일 Visual C++ 6 의 리소스 편집기에 있는 리치 에디트 컨트롤은 버젼1.0 입니다. 일단 수동으로 CRichEditCtrl을 변수를 작성하고 Create 가상함수를 호출하면 생성되고 보여집니다. 가상함수안에서 “RICHED32.dll”을 로드합니다. 그래서 문제가 없습니다. 하지만 리소스 편집기에서 다이알로그에 추가한 리치 에디트는 명시적으로 “RICHED32.dll”을 호출하지 않기 때문에 프로그램 자체가 실행되지 않습니다. 리소스 로드에 실패하는 것이죠. 결국 리치 Continue Reading