|
언급하신 Application::MessageBox 함수의 경우는, VCL에서 기존에는 AnsiString으로 되어있던 인자들이 UnicodeString으로 바뀌었기 때문에 Application::MessageBox의 인자로 WideChar *를 넘겨야 하는 거죠.
그런 경우에 굳이 변수 선언을 다 바꾸면 익숙한 AnsiString을 익숙하지 않은 UnicodeString으로 다 바꿔야 하니까, 그냥 AnsiString으로 쓰다가 필요한 경우에만 UnicodeString으로 캐스팅하는 것이 아마 더 편하실 겁니다. 변환해야 할 부분도 적을 것이구요.
AnsiString str = "test";
Application->MessageBox( UnicodeString(str).w_str(), L"caption");
이렇게 말입니다.
물론, 유니코드 지원이 그다지 필요없는 경우에 한해서 말입니다.
유니코드 지원이 필요하다면, 상당한 작업이 될 수도 있지만, 전면적인 소스 리뷰 및 수정이 필수적이죠.
그럼 새해 복 많이 받으시고, 즐코하세요~
설인환 님이 쓰신 글 :
: 아앗 빠른 답변 감사합니다. 언제나 임프님 글로 도움을 많이 받는군요.
: 위의 strcpy()는 의문이 풀렸고, 2007에서
:
: AnsiString str = "test";
: Application->MessageBox( str, "caption");
:
: 와 같이 쓰던 것을 이제는
:
: UnicodeString str = "test";
: Application->MessageBox( str.w_str(), L"caption");
:
: 라고 써야 맞는 거겠네요.
: 항상 빌더는 저같은 초보들에게 이런 내용이 공지가 잘 안된다는게 아쉽습니다.
:
: p.s.
: 변수 이름을 한글로 할 수도 있다는게 참 신기하네요. 오래전의 씨알 이란 프로그램이 생각납니다.
:
: int 변수1 = 1;
|