7

我正在编写一个 DLL,并希望能够在 MSVC++2010 中的 unicode 和多字节设置之间切换。例如,我使用_T("string")andLPCTSTRWIN32_FIND_DATA而不是 -W 和 -A 版本等等。

现在我想让 std::strings在 unicode 设置std::string之间变化。std::wstring那可能吗?否则,这可能最终会变得非常复杂。

4

1 回答 1

12

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

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

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

或者可能:

typedef std::basic_string<TCHAR> tstring;
于 2011-05-26T01:25:09.370 回答