Programming/MFC

MFC 문자가 한글인지 검사/체크하는 방법들

acidpop 2013. 1. 30. 14:44
반응형

USES_CONVERSION 는 Wide Char 형태를 Ansi 형태로.. 혹은 그 반대로 바꾸는 것을 간편하게 해주는 매크로를 제공한다.


A2CW : (LPCSTR) ==> (LPCWSTR)
A2W : (LPCSTR) ==> (LPWSTR)
W2CA : (LPCWSTR) ==> (LPCSTR)
W2A : (LPCWSTR) ==> (LPSTR)


T2COLE : (LPCTSTR) ==> (LPCOLESTR)
T2OLE : (LPCTSTR) ==> (LPOLESTR)
OLE2CT : (LPCOLESTR) ==> (LPCTSTR)
OLE2T : (LPCOLESTR) ==> (LPCSTR)


<사용예>

	CString strTrackData;
	unsigned char* trackData;
	int size, decUnicode;

	// unsigned char* 형을 CString 변수에 저장
	strTrackData.Format(_T("%s"), m_hCommHistory->GetTrackData());
	size = strTrackData.GetLength();

	// unsigned char* 형을 WCHAR* 변수에 저장

	WCHAR* w_trackData = T2W((LPCSTR)m_hCommHistory->GetTrackData());
	for(int i = 0; i < size; i++) 
	{
		// 유니코드값을 얻어와서 한글 범위 체크
		decUnicode = static_cast(w_trackData[i]);
		if(decUnicode >= 44032 && decUnicode <= 55203) 
		{
			// 한글은 '?'로 대체
			w_trackData[i] = '?';
		}
	}

	// !! 간단한 매크로도 있다
	#define ishan(ch) (((ch) & 0xE0) > 0x90) 
반응형