TDateTime에서 각각의 시간,분,초를 얻어오려면 DecodeTime() 이라는 메소드를 사용해야 한다.
함수를 쓰려면 선언을 먼저 봐야하는법..
대충 이렇게 생겼다.
void __fastcall DecodeTime(unsigned short* hour, unsigned short* min, unsigned short* sec, unsigned short* msec) const;
일단 현재 시간을 가져오는 정상적인 방법으로....
TDateTime now = Now();
unsigned short y,m,s,msec,
now.DecodeTime(&y, &m, &s, &msec);
그런데 간혹가다가 시간 분,초 필요없고 1/1000 초만 필요한 경우가 생겨서..
변수 생성해서 쓰기도 귀찮고해서 이렇게 쓴다.
unsigned short tmp,msec,
now.DecodeTime(&tmp, &tmp, &tmp, &msec);
그런데..
윈도우 API 중에서 대부분 포인터 주는 부분에 NULL을 넣어주면 그 부분은 아무 동작도 하지 않는 경우가 있다.
즉 리턴으로 받고 싶지 않으면 포인터에 그냥 NULL로 넣는 것이다.
그래서 이렇게 해보았다...
unsigned msec;
now.DecodeTime(NULL,NULL,NULL, &msec);
msec 단위만 필요할때... 아주 간편하게 되었다..
BUT !! 위 코드처럼 사용하면 "잘못된 연산" 뜨면서 죽는다~~~ ^^;
VCL은 API 처럼 안만드는구나.. ㅋㅋ
PS.
참.. 이건 팁도 아니구 뭔지...
'프로그래밍' 카테고리의 다른 글
C++builder 2010 Class Explorer (0) | 2010.03.02 |
---|---|
F1008 Out of memory 에러 뜰때 (0) | 2010.01.31 |
컴파일에러:E2111 Type 'typename' may not be defined here (3) | 2009.10.27 |
멀티쓰레드 프로그래밍시 문제발생 시나리오 (3) | 2009.10.21 |
C소스의 전체 컴파일 과정 (0) | 2009.10.15 |