C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[63756] Re:Re:Re:Re:c_str() 의 E2034 cannot convert 'wchar_t *' to 'const char *' error... 완전 초
Lyn [tohnokanna] 2941 읽음    2011-02-17 18:15
WideString 이 아니라 UnicodeString 입니다.

AutuMn 님이 쓰신 글 :
: 네 맞습니다.
:
: 반환 이라기 보단,
: Edit 컨트롤의 Text 프로퍼티의 형이 WideString 이라고 하는게 더 맞겠네요.(wchar_t* 아닙니다.)
: Edit 컨트롤도 클래스 이기 때문에 Text 라는 프로퍼티를 가지고 있는거지요.
: WideString 역시 유니코드 입니다.
:
: 덧붙여 몇가지 설명 드리자면..
:
: char, wchar_t 는 C++의 공식 문자열 데이터 형 이구요.
: AnsiString, WideString 은 볼랜드에서 제공하는 문자열 클래스입니다.
: 보통은 클래스의 객체를 생성 하기 위해선 new 연산자를 사용 해야 하지만
: AnsiString, WideString 은 볼랜드에서 쓰기 쉽게 만들어 놨습니다.
: 그냥 = 연산자로 값이 할당되죠.
:
:
: 볼랜드가 예제나 강좌가 확실히 적긴 합니다.. ^^
: 그래도 초기에 배움에 있어서는 Visual C++ 보다는 훨씬 편하리라 생각되네요.
:
: 즐프 하세요 ^^
:
:
: 이규원 님이 쓰신 글 :
: : 답변 감사합니다.
: : 프로그래밍에 문외한인데요. 회상에서 갑자기 관련된 일을 하게 되어 C/C++ 학원 2달 다니고 C++ builder를 만지게 생겼습니다. AnsiString이란걸 알아보다 보니 오래전 글의 예제가 아래와 같았는데... 2009년에 바뀌었다니 정말.... 힘이 빠지네요.. ㅋㅋㅋ
: :
: :  제 이해가 맞는지 모르겠습니다만. 2009년에 바뀌었단 말씀이... Edit1->Text가 const char*를 반환하던것이 wchar_t*를 반환하게 바뀌었단 말씀이시죠? 제가 똑바로 이해했는지 모르겠습니다.
: :  초보치고도 너무 엄청난 초보라... 어디 배울곳도 없고. 강좌도 없는 수입사가 미울뿐입니다...ㅠ.ㅠ
: : 
: :
: :
: : AutuMn 님이 쓰신 글 :
: : : 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());
: : : :
: : : :
: : : : 위와 같은 코드를 적어 넣었는데요. 제목과 같은 에러가 나네요...
: : : : 인터넷을 뒤져보면 저런식으로 쓰는게 맞는 것 같은데요...
: : : :
: : : : 어떻게 된 걸까요?

+ -

관련 글 리스트
63751 c_str() 의 E2034 cannot convert 'wchar_t *' to 'const char *' error... 완전 초보에요.. 이규원 2475 2011/02/17
63753     Re:c_str() 의 E2034 cannot convert 'wchar_t *' to 'const char *' error... 완전 초보에요.. AutuMn 4397 2011/02/17
63754         Re:Re:c_str() 의 E2034 cannot convert 'wchar_t *' to 'const char *' error... 완전 초보에요.. 이규원 2086 2011/02/17
63755             Re:Re:Re:c_str() 의 E2034 cannot convert 'wchar_t *' to 'const char *' error... 완전 초보에 AutuMn 2649 2011/02/17
63756                 Re:Re:Re:Re:c_str() 의 E2034 cannot convert 'wchar_t *' to 'const char *' error... 완전 초 Lyn 2941 2011/02/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.