LPCSTR = const char* : 멀티바이트.
- LPCSTR 은 const char* 와 동일한것. typdedef const char* LPCSTR ; 로 되어있음.
- 용어의미 : LP (Pointer ), C (constant) STR (string).
LPCWSTR = const wchar_t* : 유니코드.
- LPCWSTR 은 const wchar_t* 와 동일한것. typedef const wchar_t* LPCWSTR; 로 되어있음.
- 용어의미 : LP(Pointer), C (constant), WSTR (wide string).
LPCTSTR : 프로젝트 환경설정(문자집합 설정)에 따라 LPCSTR 혹은 LPCWSTR 로 처리됨.
- 용어의미 : LP (Pointer), C (constant), TSTR(TCHAR string).
설명 : LPCTSTR 로 변수 선언한 경우, VC++ 프로젝트의 설정이 "멀티바이트 문자집합" 사용인 경우 해당 변수는 LPCSTR로 처리되며, VC++ 프로젝트 "문자집합설정"이 "유니코드" 인 경우 해당변수는 LPCWSTR 로 처리되므로 편하다.
LPTSTR : 프로젝트 환경설정(문자집합 설정)에 따라 char* 혹은 wchar_t* 로 처리됨.
-용어의미 : LP (Pointer), TSTR (TCHAR String).
유니코드에선 wchar_t*, 멀티바이트에선 char*
TCHAR : 프로젝트 환경설정(문자집합 설정)에 따라 char 혹은 wchar_t 로 처리됨.
설명 : TCHAR 로 변수선언한 경우, VC++ 프로젝트의 설정이 "멀티바이트 문자집합" 사용인 경우 해당 변수는 char 로 처리되며, VC++ 프로젝트 "문자집합설정"이 "유니코드" 인 경우 해당변수는 wchar_t 로 처리된다.
CString 을 LPCTSTR 로 변환하기.
CString cst;
LPCTSTR m_lpctstr = cst; 별다른 처리 없이 대입하듯이 하면됨. 실제 컴파일 과정에서는 CString이 LPCTSTR로 알아서 변환 처리됨. 그러나, 대입할 쪽이 LPCTSTR인 경우 명시적으로 형변환 하는게 안전함. 즉,
LPCTSTR m_lpctstr = (LPCTSTR)cst;
CString 을 LPTSTR로 변환하기.
CString cst;
LPTSTR p = cst.GetBuffer(0);
cst.ReleaeBuffer();
문자열 상수 정의시 _T("문자들"), TEXT("문자들")
유니코드 설정에선 wchar_t 형 문자열 상수 로 처리되고 멀티바이트로 설정되어있다면 char 형 문자열 상수로 처리됨.
프로젝트 속성의 문자집합 설정법.
- VC++ 프로젝트 속성창에서 설정가능함. 유니코드로 할것.
추가 상세정보 : http://www.codeproject.com/Articles/76252/What-are-TCHAR-WCHAR-LPSTR-LPWSTR-LPCTSTR-etc
본 글이 포함된 상위 정리 장소.
Visual Studio/VC++/C/C# 활용정리 -> http://igotit.tistory.com/11
|
///502.
'VisualStudio.C++.C# > 코딩팁,함수활용,단편' 카테고리의 다른 글
CString, LPCTSTR, LPTSTR. (0) | 2015.12.21 |
---|---|
VC++. 출력 언어 고정하기.예. #pragma setlocale("kor") (0) | 2015.12.18 |
VC++. CW2A, CA2W 멀티바이트 <-> 유니코드 변환 클래스. (0) | 2015.12.18 |
Dependency Walker 로 Explicit linking 된 DLL 까지 확인하는법. (0) | 2015.12.16 |
Dependencey Walker - EXE,DLL 에서 사용되는 DLL 및 DLL 노출함수 볼 수 있는 툴. (0) | 2015.12.16 |
댓글