[C++] LPCTSTR
LPCTSTR 이란?
-
Long Pointer Constant t_string = const char*
-
- LP
- long pointer의 약자로 컴파일러에 따라 다르지만
.Net의 경우 64bit pointer, 다른 낮은 버전은 32bit pointer를 나타냅니다.
-
- C
- constant의 약자로 변경을 하지 말라는 의미로 사용됩니다.
-
- STR
- STR은 대충 짐작하겠지만 string자료가 될것이고 내부적으로는 char형 배열에 마지막 종료값 null을 가지고 있습니다.
- W
:wide char를 나타내고 unicode 입니다.
-
요약을 해보자면
LPSTR = long pointer string = char *
LPCTSTR = long pointer constant t_string = const char *
=> const가 있냐 없냐 차이만 있을뿐 LPSTR, LPCTSTR은 같은 형태
LPCTSTR 이게 왜?
-
원래 C와 C++은 string이라는 자료구조형을 Compiler 차원에서 지원하고 있지 않는다.
그대신 가장 많이 사용하는 string을 어떻게 저장해야 할지에 대해 고심한 결과 배열의 끝에 \0또는 NULL 값을 넣어 string을 표현하도록 했다. -
Windows에서는 이런 String처리를 위해서 char*형을 그대로 쓰기보다는 LPCSTR등의 표현을 사용 함으로 편의성을 돕고 있다.