2010. 2. 9. 11:08
아톰에 대해서 알기전에 아톰테이블에 대해서 먼저 알아보자.
아톰 테이블이란?
- 시스템이 유지하는 문자열 테이블
- 아톰들을 저장하는 해쉬테이블
아톰테이블에 문자열을 보관하면 저장된 문자열을 대표하는 정수값을 돌려준다. 그 값이 아톰이다.
아톰 테이블의 종류
아톰 테이블이란?
- 시스템이 유지하는 문자열 테이블
- 아톰들을 저장하는 해쉬테이블
아톰테이블에 문자열을 보관하면 저장된 문자열을 대표하는 정수값을 돌려준다. 그 값이 아톰이다.
아톰 테이블의 종류
로컬 아톰테이블
글로벌 아톰테이블
아톰함수정리
ATOM GlobalAddAtom(LPCTSTR lpString) <문자열 추가>
ATOM GlobalDeleteAtom(ATOM nAtom) <문자열삭제>
UINT GlobalGetAtomName(ATOM nAtom, LPTSTR lpBuffer, int nSize)
<아톰값으로부터 문자열 추출>
- 지역아톰테이블에 저장
- 테이블을 만든 응용 프로그램 내에세만 사용가능
- 함수명 AddAtom, GetAtomName 등등
- 테이블을 만든 응용 프로그램 내에세만 사용가능
- 함수명 AddAtom, GetAtomName 등등
글로벌 아톰테이블
- 전역아톰테이블에 저장
- 시스템의 모든 응용 프로그램이 같이 사용
- 함수명 GlobalAddAtom, GloabalGetAtomName 등등
- 시스템의 모든 응용 프로그램이 같이 사용
- 함수명 GlobalAddAtom, GloabalGetAtomName 등등
아톰함수정리
ATOM GlobalAddAtom(LPCTSTR lpString) <문자열 추가>
첫 번째 인자: 추가 하고자 하는 문자열
반환 값 : 아톰테이블에 추가된 문자열의 아톰을 준다.
반환 값 : 아톰테이블에 추가된 문자열의 아톰을 준다.
ATOM GlobalDeleteAtom(ATOM nAtom) <문자열삭제>
첫 번째 인자: 삭제 하고자 하는 아톰
반환 값: 성공시 0 , 실패시 nAtom
반환 값: 성공시 0 , 실패시 nAtom
UINT GlobalGetAtomName(ATOM nAtom, LPTSTR lpBuffer, int nSize)
<아톰값으로부터 문자열 추출>
첫번재 인자: 헤당 아톰
두번째 인자: 아톰에서 찾은 문자열을 담을 버퍼공간
세 번째 인자: 버퍼공간 사이즈
ATOM GlobalFindAtom(LPCTSTR lpString)
<문자열로부터 아톰값을 구한다.>
아톰의 사용용도
- 문자열을 '키'로 가지는 자료들을 관리 할 때
중복문자열을 저장하지 않는다.(Add함수로 같은 문자열을 저장하면 참조카운트가 늘어난다 1,2,3....Delete 함수로 참조인수가 0이 될 때 시스템은 아톰테이블에서 문자열삭제한다.)
- 문자열을 통한 해쉬함수가 필요한 경우
두번째 인자: 아톰에서 찾은 문자열을 담을 버퍼공간
세 번째 인자: 버퍼공간 사이즈
반환 값: 실패 시 0
ATOM GlobalFindAtom(LPCTSTR lpString)
<문자열로부터 아톰값을 구한다.>
첫 번째 인자: 해당 문자열
반환 값 : 실패 시 0
반환 값 : 실패 시 0
아톰의 사용용도
- 문자열을 '키'로 가지는 자료들을 관리 할 때
중복문자열을 저장하지 않는다.(Add함수로 같은 문자열을 저장하면 참조카운트가 늘어난다 1,2,3....Delete 함수로 참조인수가 0이 될 때 시스템은 아톰테이블에서 문자열삭제한다.)
- 문자열을 통한 해쉬함수가 필요한 경우
'API & MFC > API & 시스템프로그래밍' 카테고리의 다른 글
메시지 기본원리 (0) | 2010.02.13 |
---|---|
프로세스 (0) | 2010.02.10 |
간단한 DLL 예제 (1) | 2010.02.03 |
리스트뷰 (0) | 2010.02.03 |
WM_USER And WM_APP (0) | 2010.02.02 |