-코드-

char pBuffer[MAX_PATH];
SHGetSpecialFolderPath(NULL, pBuffer, CSIDL_PERSONAL , 0);
cout << pBuffer;

 

 

-결과-

image

Posted by 유령물소

- 모의고사 시간 도우미
- 모의고사 점수 도우미 (Graph)

Posted by 유령물소

Qt 4.6.0 configure

분류없음 2009/12/22 18:35

platform: embedded-linux
architecture: arm

1. Qt를 다운받는다.
http://qt.nokia.com/downloads

2. 압축을 푼 후 설치전 환경설정을 한다.

주의사항
  1. 아래 구문을 파일로 만들어 (<CR><NL>이 포함된 채로) linux로 복사한 후 bash에서 실행하는 경우 정상적으로 실행되지 않는 경우가 있다. fileformat을 unix로 하여야 한다.
  2. "\" 문자 앞에는 꼭 공백을 삽입한다.


./configure \
-embedded arm \
-little-endian \
-no-qt3support \
-no-accessibility \
-xplatform qws/linux-arm-g++ \
-qt-gfx-linuxfb \
-qt-zlib -qt-gif -qt-libpng -qt-libjpeg \
-qt-mouse-tslib -I/usr/local/tslib-1.0/include -L/usr/local/tslib-1.0/lib \
-qt-kbd-tty \
-qt-freetype \
-depths 16,24,32 \
-prefix /usr/local/qte-4.6.0 \
-nomake examples\               # 예제를 빌드하지 않는다.
-nomake docs\                      # 문서를 빌드하지 않는다.
-nomake demos                      # 데모를 빌드하지 않는다.


3. 빌드한다.
gmake

저작자 표시 비영리 동일 조건 변경 허락
Posted by 유령물소

int pthread_cond_timedwait ( pthread_cond_t *restrict cond,
              pthread_mutex_t *restrict mutex,
              const struct timespec *restrict abstime);


이 함수의 파라메터 abstime 구조체를 윈도우에서 설정하려면 아래와 같은 함수를 사용한다.

#include <sys/timeb.h>

pthread_mutex_lock(&mut);

timespec abstime;
struct _timeb currSysTime;

_ftime(&currSysTime);

abstime.tv_sec = currSysTime.time + (대기할 초);
abstime.tv_nsec = NANOSEC_PER_MILLISEC * currSysTime.millitm;

int nResult = pthread_cond_timedwait(&con, &mut, &abstime);

pthread_mutex_unlock(&mut);




저작자 표시 비영리 동일 조건 변경 허락
Posted by 유령물소

Custom CComboBox

MFC 2009/11/02 23:59


C#이나 Java에서는 사용자 정의 컨트롤을 만들어 쓰기 쉽다. 그냥 상속받아서 입맛에 맛게 만들면 된다. 생성자에 구현해도 좋고, 기타 메서드를 만들어 써도 된다.

그러나 MFC에서는 다소 차이가 있다. MFC class들을 subclassing하여 구현하였을 경우 다른 초기화 메서드는 호출되지 않으므로, 아래 메서드를 override하여 사용하여야한다.

PreSubclassWindow()

이를 이용하여 Hex값을 출력시켜주는 CComboHexBox class를 간단하게 구현하여 보았다.


소스코드는 아래에 있다.

저작자 표시 비영리 동일 조건 변경 허락
Posted by 유령물소


위 그림은 Binary Search 알고리즘을 수행중 Low와 Value가 55이고 High가 56인 경우의 스냅샷이다. 이같은 경우 오른쪽 방향으로 search를 할 경우 무한 loop에 빠질 수 있다. 왜냐하면 변수 타입이 정수이기 때문이다.


ex)

low = 55(value)

high = 56

value = (55+56) / 2 = 55


결국 위 그림과 같은 상태가 계속 유지되는 것이다. 이를 방지하기 위하여 다음과 같은 코드를 추가해 볼 수 있겠다.


if ( low == value && high - low == 1)
low = value = h;


위 코드가 추가됨으로써 low == high 에 도달하여 이진탐색이 종료될 수 있다.



저작자 표시 비영리 동일 조건 변경 허락
Posted by 유령물소