|
cannot convert 'wchar_t *' to 'const char *' error
보시는 바와 같이 wchar_t* 를 const char* 로 컨버트 할 수 없다는 이야기 입니다.
wchar_t 는 유니코드로써, 아마 코드기어 2009 버전부터는 기본 적용 되는 걸로 알고 있습니다.
(컨트롤들이 죄다 유니코드화 되었죠.. 심지어 변수 및 함수도 한글로 선언이 됩니다.)
해결책은,
Edit 컨트롤을 유니코드가 아닌 걸로 사용 하셔야하거나..(이방법은 좀 까다롭겠죠)
쉬운 방법으로는
카피 해 넣을 str 도 wchar_t* 로 선언 하는 겁니다.
wchar_t* str;
str = new wchar_t*[100];
wcscpy(str, Edit->Text);
다른 점은 strcpy -> wcscpy 로 유니코드 용 문자열 복사 함수를 사용 하였고
유니코드는 .c_str() (실제 함수명은 c_bstr() 입니다) 을 안 해도 알아서 된다는 것이 있겠네요.
즐프 하세요 ^ㅁ^
이규원 님이 쓰신 글 :
: char *str;
: str = new char[100];
: strcpy( str , Edit1->Text.c_str());
:
:
: 위와 같은 코드를 적어 넣었는데요. 제목과 같은 에러가 나네요...
: 인터넷을 뒤져보면 저런식으로 쓰는게 맞는 것 같은데요...
:
: 어떻게 된 걸까요?
|