vc++中std::string/std::wstring的宏是啥?
Posted
技术标签:
【中文标题】vc++中std::string/std::wstring的宏是啥?【英文标题】:What is the macro for std::string/std::wstring in vc++?vc++中std::string/std::wstring的宏是什么? 【发布时间】:2016-03-24 10:03:37 【问题描述】:根据 MSDN:
https://msdn.microsoft.com/en-us/library/windows/desktop/ff381407%28v=vs.85%29.aspx
你可以根据编译器 MACRO UNICODE 为 char 或 wchar_t 编写 TCHAR
std::string 和 std::wstring 有类似的符号吗?
谢谢!
(我的VC++版本是2013)
【问题讨论】:
TCHAR 和 UNICODE 宏是 Windows API 的一部分,与 C++ 运行时库 API 不同。这就是为什么还没有一个。 Visual C++ 确实在 C 运行时库中提供了一些类似 TCHAR 的功能,但这会触发_UNICODE
(注意前导下划线)。
【参考方案1】:
你可以自己定义:
typedef basic_string<TCHAR, char_traits<TCHAR>, allocator<TCHAR> > tstring;
【讨论】:
谢谢,在我的环境中应该这样写:typedef std::basic_string我没有找到。我自己在我的代码中写了一个这样的 -
#ifdef UNICODE
#define tstring std::wstring
#else
#define tstring std::string
#endif
【讨论】:
【参考方案3】:您还可以通过在 stdafx.h 中添加命名空间来进行一些调整
namespace std
typedef basic_string<TCHAR, char_traits<TCHAR>, allocator<TCHAR> > tstring;
【讨论】:
以上是关于vc++中std::string/std::wstring的宏是啥?的主要内容,如果未能解决你的问题,请参考以下文章