char* UTF8ToANSI(const char *pszCode)
{
BSTR bstrWide;
char* pszAnsi;
int nLength;
// bstrWide 배열 생성 Lenth를 읽어 온다.
nLength = MultiByteToWideChar(CP_UTF8, 0, pszCode, lstrlen((LPCWSTR)pszCode) * 3 + 1, NULL, NULL);
// bstrWide 메모리 설정
bstrWide = SysAllocStringLen(NULL, nLength);
MultiByteToWideChar(CP_UTF8, 0, pszCode, lstrlen((LPCWSTR)pszCode) * 3 + 1, bstrWide, nLength);
// char 배열 생성전 Lenth를 읽어 온다.
nLength = WideCharToMultiByte(CP_ACP, 0, bstrWide, -1, NULL, 0, NULL, NULL);
// pszAnsi 배열 생성
pszAnsi = new char[nLength];
// char 변환
WideCharToMultiByte(CP_ACP, 0, bstrWide, -1, pszAnsi, nLength, NULL, NULL);
// bstrWide 메모리 해제
SysFreeString(bstrWide);
return pszAnsi;
}
'개발지식창고 > C++' 카테고리의 다른 글
DLL 제작 기법 (0) | 2017.06.30 |
---|---|
COM+ 서버 (0) | 2015.02.09 |
클래스 메소도와 인스턴스 메소드? (0) | 2013.08.19 |
#pragma pack(push, 1) (0) | 2011.11.28 |
형변환 (Typecasting) - const_cast, reinterpret_cast, static_cast, dynamic_cast (0) | 2010.11.14 |