퍼옴 http://deios.kr/399
요즈음..형변환에 민감해져있네...
-----------
LPCTSTR형을 char*형으로 변환하는 방법을 알려드리겠습니다.
먼저 소스부분에
선언된 곳으로 이동해보니
그리고 char*로 변환할 LPCTSRT변수를 W2A로 묶어줍니다.
이것도 선언된 곳으로 이동해보니
종합하면 이런 형식이 되겠죠?
아... 헤더파일은
요즈음..형변환에 민감해져있네...
-----------
LPCTSTR형을 char*형으로 변환하는 방법을 알려드리겠습니다.
먼저 소스부분에
USES_CONVERSION;
라고 적어줍니다.선언된 곳으로 이동해보니
#ifndef _DEBUG
#define USES_CONVERSION int _convert; (_convert); UINT _acp = ATL::_AtlGetConversionACP() /*CP_THREAD_ACP*/; (_acp); LPCWSTR _lpw; (_lpw); LPCSTR _lpa; (_lpa)
#else
#define USES_CONVERSION int _convert = 0; (_convert); UINT _acp = ATL::_AtlGetConversionACP() /*CP_THREAD_ACP*/; (_acp); LPCWSTR _lpw = NULL; (_lpw); LPCSTR _lpa = NULL; (_lpa)
#endif
이따구로 define되어있네요...#define USES_CONVERSION int _convert; (_convert); UINT _acp = ATL::_AtlGetConversionACP() /*CP_THREAD_ACP*/; (_acp); LPCWSTR _lpw; (_lpw); LPCSTR _lpa; (_lpa)
#else
#define USES_CONVERSION int _convert = 0; (_convert); UINT _acp = ATL::_AtlGetConversionACP() /*CP_THREAD_ACP*/; (_acp); LPCWSTR _lpw = NULL; (_lpw); LPCSTR _lpa = NULL; (_lpa)
#endif
그리고 char*로 변환할 LPCTSRT변수를 W2A로 묶어줍니다.
이것도 선언된 곳으로 이동해보니
#define W2A(lpw) (\
((_lpw = lpw) == NULL) ? NULL : (\
(_convert = (lstrlenW(_lpw)+1), \
(_convert>INT_MAX/2) ? NULL : \
ATLW2AHELPER((LPSTR) alloca(_convert*sizeof(WCHAR)), _lpw, _convert*sizeof(WCHAR), _acp))))
이따구로 define되어있습니다.((_lpw = lpw) == NULL) ? NULL : (\
(_convert = (lstrlenW(_lpw)+1), \
(_convert>INT_MAX/2) ? NULL : \
ATLW2AHELPER((LPSTR) alloca(_convert*sizeof(WCHAR)), _lpw, _convert*sizeof(WCHAR), _acp))))
종합하면 이런 형식이 되겠죠?
USES_CONVERSION;
char *tmp = W2A(LPCTSTR문자열);
char *tmp = W2A(LPCTSTR문자열);
아... 헤더파일은
ctlconv.h
입니다 'programming > MFC' 카테고리의 다른 글
CString 으로 받은 IP Address를 4byte로 자르기 (0) | 2011.12.16 |
---|---|
MFC PropertyGrid Control (Column Header Size 조절하기) (1) | 2011.11.21 |
[MFC] CString 에 있는 파일경로 char 로 가져오기 wcstombs_s 함수 (0) | 2011.10.20 |
MultiByteToWideChar(), WideCharToMultiByte() 함수 (0) | 2011.09.21 |
Arp Table Edit ( ADD/ Modify / Remove ) - C/C++ (0) | 2011.03.14 |