根据MSVC ++中的unicode设置自动在std :: string和std :: wstring之间切换?

时间:2011-05-26 01:21:51

标签: c++ string unicode unicode-string

我正在编写DLL并希望能够在MSVC ++ 2010中的unicode和multibyte设置之间切换。例如,我使用_T("string")LPCTSTR以及WIN32_FIND_DATA代替-W和-A版本,依此类推。

现在我希望根据unicode设置让std :: strings在std::stringstd::wstring之间切换。那可能吗?否则,这可能会变得非常复杂。

1 个答案:

答案 0 :(得分:12)

为什么不像Win32 API那样:在内部使用宽字符,并提供DoSomethingA函数的字符转换外观,只需将其输入转换为Unicode。

也就是说,您可以像这样定义tstring类型:

#ifdef _UNICODE
typedef std::wstring tstring;
#else
typedef std::string tstring;
#endif

或可能:

typedef std::basic_string<TCHAR> tstring;