본문 바로가기

Window Programming

WIN 32 API 시작하기전에 간단히 알아두기

헝가리식 변수 명명법

 

접두어        원래말                                 의미

 

cb              Count of Byte                        바이트 수

 

dw             double Word                          unsigned long 

 

h                handle                                 윈도우, 비트맵 , 파일등의 핸들

 

sz              Null Teminated                      NULL 종료 문자열 

 

ch              Character                             문자형 

 

a                Array                                    배열

 

w               Word                                   부호 없는 정수형 (unsiged short)

 

i                 integer                                 정수형

 

p, lp           long pointer                          포인터형

 

b                Bool                                    논리형

    

 

 

 

 

 

윈도우즈 사용자 정의 데이터형

 

데이터형             의미

BYTE                 unsigned char             

 

CHAR                 char

 

WORD                unsigned short

 

DWORD              unsinged long

 

LONG                long와 동일

 

BOOL                정수형이며 TRUE , FALSE중 하나의 값을 지님

 

 

 

 

 

핸들 

핸들이란 구체적인 어떤 대상에 붙여진 번호이며 문법적으로 32비트(또는 64비트)로 이루어진 정수값이다.

 

1. 핸들은 일단 정수값이며 대부분의 경우 32비트 값이다. 핸들을 사용하는 목적은 오로지 구분을 위한 것이므로 핸들끼리 중복되지 않아야 하며

    이런목적으로는 정수형이 가장 적합하다. 정수형은 비교나 대입 연산이 가장 빠른 타입이므로 핸들로 쓰기에 적합하다.

 

2. 핸들은 운영체제가 발금하여 사용자는 쓰기만 한다. 예를 들어 윈도우를 만들거나 파일을 열면 운영체제는 만들어진 윈도우나 열려진 파일에

   운영체제는 만들어진 윈도우나 열려진 파일에 핸들을 붙이고 그 값을 리턴한다. 사용자는 이 핸들을 잘보관해 두었다가 해당 윈도우나 파일을

   다시 참조할때 사용 한다. 사용자가 직접 핸들을 만드는 경우는 없다.

 

3. 같은 종류의 핸들끼리 절대로 중복된 값을 가지지 않는다. 만약 이렇게 된다면 대상을 구분하는 본래의 목적을 달성 할 수 없을 것이다.

    물론 다른  종류의 핸들끼리는 중복된 값을 가질 수도 있다.

 

4. 핸들은 정수형이므로 값을 가지겠지만 그 실제값이 무엇인지 몰라도  상관 없다. 핸들은 크고 작음의 성질을 가지는 숫자가 아니라 단순한 표식일뿐이다.

    핸들형 변수를 만들어 핸들을 대입받아 쓰고 난 후에 버리면 된다. 마치 malloc한 포인터의 실제 위치가 어디인가 신경 쓸 필요 없이 사용하다가

    free로 해제하면 그만인 것과 같다.

 

 

 

 

 

 

유니코드

 

C타입                 유니코타입

 

char                    TCHAR

 

char*                   LPSTR

 

const char*          LPCSTR 

 

 

 

 

문자열 처리 함수

 

C 표준 함수             유니코드 지원 함수

strlen                       lstrlen

 

strcpy                      lstrcpy

 

strcat                      lstrcat

 

strcmp                    lstrcmp

sprintf                     wsprintf            

 

 

 

 

 

유니코드 문자의 선언

 

TCHAR *str = " string " ;              // 이렇게 쓰지말고  (X)

TCHAR *str = TEXT( "string" )      // TEXT매크로 안에 문자열 상수를 쓴다. (O)

 

'Window Programming' 카테고리의 다른 글

Key Logger  (0) 2014.04.29
InjectDll  (0) 2012.02.08
다시 보는 후킹 기법  (0) 2012.02.06