멀티바이트에서 유니코드로 변환 // sTime이란 ANSI 문자열을 bstr이란 이름의 유니코드(BSTR 타입) 변수로 변환 char sTime[] = "유니코드 변환 예제"; BSTR bstr; // sTime을 유니코드로 변환하기에 앞서 먼저 그 길이를 알아야 한다. int nLen = MultiByteToWideChar(CP_ACP, 0, sTime, lstrlen(sTime), NULL, NULL); // 얻어낸 길이만큼 메모리를 할당한다. bstr = SysAllocStringLen(NULL, nLen); // 이제 변환을 수행한다. MultiByteToWideChar(CP_ACP, 0, sTime, lstrlen(sTime), bstr, nLen); // 필요없어지면 제거한다. SysFreeString(bstr);
// newVal이란 BSTR 타입에 있는 유니코드 문자열을 sTime이라는 ANSI 문자열로 변환 char *sTime; int nLen = WideCharToMultiByte(CP_ACP, 0, newVal, -1, sTime, 0, NULL, NULL); sTime = malloc(nLen+1); WideCharToMultiByte(CP_ACP, 0, newVal, -1, sTime, 128, NULL, NULL); // 필요없으면 메모리를 제거한다. free(sTime);
또 낑낑되구 있당 ㅠ.ㅠ 타입 케스팅은 힘드렁