我正在编写DLL并希望能够在MSVC ++ 2010中的unicode和multibyte设置之间切换。例如,我使用_T("string")
和LPCTSTR
以及WIN32_FIND_DATA
代替-W和-A版本,依此类推。
现在我希望根据unicode设置让std :: strings在std::string
和std::wstring
之间切换。那可能吗?否则,这可能会变得非常复杂。
答案 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;