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
[71210] Re:Re:[답변] XE5에서 c_str() 과 t_str() 구분 없이 둘다 wchar*를 반환함
[] 4636 읽음    2014-04-12 16:13
XE5를 사용한신다는 걸 못 봤네요.
2010버전만 사용하다보니 생각이 짧았습니다.

엠바카데로 문서 홈페이지에 UnicodeString 에 대해서 다음과 같은 글이.
In order to use char values, you need to convert the data as follows:
Before XE: mystr.t_str()
Now: AnsiString(mystr).c_str()

XE버전 이전에서는 t_str()로 되지만
이후버전에서는 AnsiString으로 변환 후 c_str()을 사용해야 되는군요.

좋은 지적 감사합니다.


감사는 여기까지만 하고
불편하시겠지만 몇마디만 하겠습니다

자신이 누군지 표시하지도 않고 많이 짧은 말을 하시는 걸 보니
게시판에서 안 좋은 기억으로 남은 그분인듯하군요

남을 깔보는 말투는 어찌그리 한결 같은가요.

애도 아니고 남을 위한 존중이란 것이
이미 몸에 배어있을 나이는 되셨을 것 같은데.

조금만 더 남을 배려합시다.



님이 쓰신 글 :
: XE5에서 c_str() 과 t_str()은 둘다 wchar* 로 반환함. 구분이 없음
:
: 유니코드를 처음 지원하면서 VCL 라이브러리를 만들 때 TCHAR 타입에 따라서 다른 포인터형이 사용될 수 있도록 한 거지만
: 사실상 t_str()은 의미가 없음. C++ 표준에선 string Templete 의 T에 따라서 c_str()의 타입이 조건부 컴파일 되도록하기 때문에
: c_str() 이외의 다른 반환 함수가 필요 없음. 둘 다.. 똑 같은 타입이면서 c_str() 하나로 통일하지 않고 그대로 두고 있는 것은
: 모바일에 빠져서 열심히 삽질하고 있는 엠바의 무성의 때문이 아닐런지..
:
:
:
: 정성훈.해미 님이 쓰신 글 :
: : 안녕하세요.
: : 정성훈.해미입니다.
: :
: : 문자열 변수형 AnsiString과 UnicodeString는 모두 c_str() 함수를 내장하고 있지만
: : 약간 다릅니다.
: :
: : AnsiString의 경우 c_str()은 char*로 반환하고
: : UnicodeString의 경우 c_str()은 wchar*로 반환합니다.
: : UnicodeString을 char*로 반환할려면 t_str()을 사용하야 합니다.
: :
: : OpenDialog1->FileName 은 UnicodeString형이고
: : strcpy함수는 인자로 char*를 받기 때문에
: :
: : 다음과 같이 t_str()로 해주시면 짤리지 않고 정상적으로 나옵니다.
: :
: : strcpy(aaa, OpenDialog1->FileName.t_str());     //.t_csr()을 사용
: :
: :
: :
: : 초보사용자 님이 쓰신 글 :
: : :
: : : char aaa[256];
: : : .
: : : .
: : : .
: : : strcpy(aaa, OpenDialog1->FileName.c_str());
: : :
: : : 이렇게 코딩이 돼있고요...
: : : 옛날 버전 빌더로는 제대로 컴파일이 됐었는데, C++Builder XE5로 설치하고
: : : 실행했더니 에러가 납니다.
: : :
: : : Cannot convert 'wchar t*' to 'const char *'  <-이런 에러가 납니다.
: : :
: : : 그래서
: : : strcpy(aaa, (const char *)OpenDialog1->FileName.c_str());
: : : 이렇게 했더니 에러는 없어졌는데,
: : : 정상적으로 strcpy가 안되고 첫글자 하나만 aaa에 들어가네요....
: : :
: : : 조언부탁드립니다.
: : :
: : : 미리 꾸벅^^*

+ -

관련 글 리스트
71187 strcpy 사용문제... 초보사용자 3134 2014/04/11
71207     [답변] AnsiString 과 UnicodeString의 c_str()의 차이 정성훈.해미 4820 2014/04/12
71208         Re:[답변] XE5에서 c_str() 과 t_str() 구분 없이 둘다 wchar*를 반환함 3452 2014/04/12
71210             Re:Re:[답변] XE5에서 c_str() 과 t_str() 구분 없이 둘다 wchar*를 반환함 4636 2014/04/12
71211                 -> 정성훈.해미 입니다. 로그인을 안하고 답글을 쓴걸 몰랐습니다. 정성훈.해미 3379 2014/04/12
71188     Re:strcpy 사용문제... pwrlove 3443 2014/04/11
71191         Re:Re:strcpy 사용문제... 3541 2014/04/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.