|
제가 알고 있는 방법 몇가지 입니다. 아마 무수히 많은 방법이 있을껍니다. --; 상황이 맞는대로 골라 쓰시면 됩니다.
1) WideString
캐스팅 시키는 함수. 아래 방법으로 하시면, A에 wchat_t 형식으로 Hello가 들어갑니다.
A = WideString("Hello");
2) StringToOleStr
원라는 AnsiString용 함수입니다. char 배열도 사용할 수 있습니다.
A = StringToOleStr("Hello");
3) MultiByteToWideChar
이 방법을 쓰시면 UTF8 형식으로도 변경할 수 있습니다. UniCode를 사용하는 경우, 이 API를 꼭 이용하셔야 합니다. UTF8을 원하시면 CP_ACP 부분을 CP_UTF8 로 바꾸어 주시면 됩니다. 이 방법은 조금 복잡합니다. 먼저 문자열 길이가 얼마나 나오는지 얻어낸 다음, 그 길이만큼 변수를 잡고, 변환을 다시 시켜야 합니다.
String stString = "HELLO";
int itWideSize = MultiByteToWideChar(CP_UTF8, 0, stString.c_str(), stString.Length() + 1, NULL, 0);
wchar_t *wcTarget = new wchar_t[itWideSize];
MultiByteToWideChar(CP_ACP, 0, stString.c_str(), stString.Length() + 1, wcTarget, itWideSize);
심심 님이 쓰신 글 :
: 안녕하세요... 제글에 관심가져 주셔서 감사드리고요...
: 제가 멀 만들고 컴파일을 하는데요... 에러가
: Cannot convert 'char*' to 'wchar_t*'
: 머 이런식으루 나오는데요.. 아무두 제가 지정해준 인자의 형이 함수에서 요구하는 인자의 형과 일치하는 않는다는 것 같더라구요.. 그리고 함수에서 원래 필요로 하는 값은 wchar_t* 형인데 저는 그냥 문자열을 지정해 주었거든요.... char*를 wchar_t*로 형변환은 어떻게 하나요??
: 너무 질문만 만이 해서... 그래도 아시는 분들의 따뜻한 조언 바랍니다... 답변미리 감사드리고요..
: 즐거운 하루되세요... 꾸벅(__)
|