[boost] weak_ptr DarkKaiser, 2015년 3월 20일2023년 9월 6일 출처 : http://sweeper.egloos.com/3059940 1. shared_ptr shared_ptr의 내용은 다음 링크를 참고하기 바라며, 특히 3-9 Circular reference 챕터를 자세히 읽어보기 바란다.(위 링크엔 shared_ptr의 circular reference에 대한 예제가 포함되어 있다) 2. weak_ptr shared_ptr은 자신이 참조하고 있는 객체(메모리 주소)에 대해 reference counting을 함으로써, 객체의 수명에 직접적으로 관여한다. shared_ptr 객체 Continue Reading
[boost] shared_ptr DarkKaiser, 2015년 3월 20일2023년 9월 6일 1. auto_ptr TR1이 발표되기 전까지 std::auto_ptr이 C++ Standara library의 유일한 스마트 포인터였다. 스마트 포인터의 기본적인 특성인 자신이 소멸될 때 가리키고 있는 대상에 대해 자동으로 delete 해줘 메모리 누수 걱정은 없게 작성이 되어 있다. 하지만, auto_ptr은 유일 소유권 개념이 있어서, 객체가 복사되는 순간(복사생성 또는 대입연산) 원래의 auto_ptr은 바로 NULL 처리가 되어 버린다. Continue Reading
[boost] boost 설치 DarkKaiser, 2012년 1월 12일2023년 9월 4일 출처 : http://shaeod.tistory.com/396 boost란 C++ 커뮤니티 및 C++ 개발자들이 개발하고 있는 오픈 소스 라이브러리의 집합으로써, C++를 위한 멀티스레딩, 정규표현식, 의사 난수 발생, 선형대수 등을 지원하는 유용한 라이브러리 집합이다. 또한 C++ 표준에 영향을 미치기도 하며, 최신 표준인 C++11에 boost 라이브러리가 몇 가지 표준으로 채택되기도 하였다. boost는 UNIX 및 Windows 등을 포함하여 Continue Reading
UNIX , Linux 의 OS별 구조체 Packing 방법 DarkKaiser, 2011년 6월 3일2023년 9월 4일 구조체 선언에서의 문제!! 리눅스는 이렇게 선언한다. typedef struct { char a; int b; } __attribute__((packed)) myST; AIX에서는 #pragma options align=packed #pragma options align=reset HP에서는 #pragma pack 1 #pragma pack 8 COMPAQ 에서는 #pragma pack 1 #pragma pack 0 Sun 에서는 #pragma pack(1) #pragma pack() [출처] UNIX , Linux 의 OS별 Continue Reading
16진수 유니코드 한글로 변환법 DarkKaiser, 2011년 3월 7일2023년 9월 4일 * 16진수 유니코드 문자 “%uD55C%uAC00%uC778” 같은 문자열을 한글로 변환하는 방법 – 자바스크립트 document.write(unescape('%ud55c%uae00')); – 자바에서 unescape() 사용하기 http://hyosang.kr/tc/74 – 닷넷 1. Microsoft.JScript 어셈블리를 참조한다. 2. escape => Microsoft.JScript.GlobalObject.escape(“바꿀 문자열”); unescape => Microsoft.JScript.GlobalObject.unescape(“바꿀 문자열”); ※ 닷넷에서 ‘\uD55C’ 형태인 경우에는 Continue Reading
하드디스크 절전 모드 전환 시간 설정하기 DarkKaiser, 2011년 1월 4일2023년 9월 5일 void TestFunc() { MYGetActivePwrScheme pFunc1 = NULL; MYGetCurrentPowerPolicies pFunc2 = NULL; MYSetActivePwrScheme pFunc3 = NULL; HINSTANCE hInstance = NULL; hInstance = LoadLibrary( "powrprof" ); if( hInstance ) { pFunc1 = (MYGetActivePwrScheme)GetProcAddress( hInstance, "GetActivePwrScheme" ); if( pFunc1 == NULL ) { TRACE("GetActivePwrScheme Fail"); ERROR_ROUTINE( hInstance ); } pFunc2 = (MYGetCurrentPowerPolicies)GetProcAddress( hInstance, Continue Reading
모니터 끄기 API DarkKaiser, 2011년 1월 4일2023년 9월 3일 ::SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2); Continue Reading
VC8 의 dll binding 문제 DarkKaiser, 2010년 10월 10일2023년 9월 4일 http://somma.egloos.com/4079724 Continue Reading
윈도우 컨트롤 화면 깜빡임 해결 방법 DarkKaiser, 2010년 8월 31일2023년 9월 4일 int CSearchUserListCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CSortListCtrl::OnCreate(lpCreateStruct) == -1) return -1; // 배경 브러시를 생성한다. m_brushBackground.CreateSolidBrush(GetBkColor()); return 0; } BOOL CSearchUserListCtrl::OnEraseBkgnd(CDC* pDC) { return TRUE; } void CSearchUserListCtrl::OnPaint() { CPaintDC dc(this); // device context for painting CMemoryDC memDC(&dc, &m_rtClientArea); memDC-FillRect(&m_rtClientArea, &m_brushBackground); CSortListCtrl::DefWindowProc(WM_PAINT, (WPARAM)memDC.m_hDC, 0); } void CSearchUserListCtrl::OnSize(UINT nType, int cx, Continue Reading