【问题标题】:Is there an string equivalent to LPTSTR?是否有与 LPTSTR 等效的字符串?
【发布时间】:2009-12-01 06:49:39
【问题描述】:

是否有与 LPTSTR 等效的字符串?我知道字符串和 wstring。有tstring吗?

【问题讨论】:

    标签: c++ windows stdstring


    【解决方案1】:

    你可以定义一个:

    typedef std::basic_string<TCHAR> mystring;
    ...
    mystring test = _T("Hello World!");
    

    【讨论】:

    • 你也需要制作新的特质吗?
    • AFAIK TCHARcharwchar_t。该标准为这两种类型提供了专业化。
    • GMan:tstring 成为 string 或 wstring 的别名(它们分别是 basic_string 和 basic_string 的 typedef)。
    • 确实,我的想法完全错了一点。那么,这个解决方案似乎相当干净。 (只需将其重命名为 tstring 并将其放入命名空间中:P)
    • 哈,哎呀,我实际上将答案读为“tstring”而不是“mystring”,因为这是通用名称。
    【解决方案2】:

    另一个选项(不需要windows.h):

    #if defined(_UNICODE) || defined(UNICODE)
      typedef std::wstring ustring_t;
      typedef wchar_t uchar_t;
      #define TEXT(x) (L##x)
    #else
      typedef std::string ustring_t;
      typedef char uchar_t;
      #define TEXT(x) (x)
    #endif
    

    用法:

    ustring_t mystr = TEXT("hello world");
    

    【讨论】:

    • 不是downvoter,但没有&lt;windows.h&gt;,您也没有TEXT() 宏。
    • TEXT 宏添加了定义。
    猜你喜欢
    • 1970-01-01
    • 2011-05-25
    • 2010-10-17
    • 2013-02-25
    • 2016-04-25
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    相关资源
    最近更新 更多