typedef basic_string<char> string;
typedef basic_string<wchar_t> wstring;
으로 선언 되어 있다.
그럼 답은 간단하지 않은가? string 을 선언할때
basic_string<TCHAR> 으로 선언 하면 된다. 그럼 간단하게 Unicode 와 Multibyte 양쪽에서 자동으로 변환 되는 문자열이 완성된다 : )
PS. 사실 이 팁은 쓸곳이 매우 한정되어있다.
왜냐면 모든 프로젝트를 Unicode 로 하는것이 퍼포먼스가 더 좋기 떄문이다(실제 Win32 Native API 에선 아예 Ansi 함수는 있지도 않으며, Win32API 에서 Ansi함수를 호출하면 자동으로 Unicode로 변환 후 Wide 함수를 재 호출한다)
즉 범용적인 라이브러리를 만들어 팔아먹을경우(그것도 소스포함 =_=;) 가 아니면 쓸데가 전혀없다