|
안녕하세요.
정성훈.해미입니다.
문자열 변수형 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에 들어가네요....
:
: 조언부탁드립니다.
:
: 미리 꾸벅^^*
|