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, std::allocator > tstring;【参考方案2】:

我没有找到。我自己在我的代码中写了一个这样的 -

#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的宏是啥?的主要内容,如果未能解决你的问题,请参考以下文章

OpenGL程序如何在VC环境中运行

vc 在程序运行中如何修改按钮上的文字

opencv中vc14和vc15的区别?

vc6和vc7中的CString有啥区别?

vc中怎么连接SqlServer

VC6.0中CFileDialog怎么选择多个文件?