慢羊羊的空间

工作做不完了,300出,无瑕。

什么是 LPCTSTR?和 char* 有什么关系? 铜牌收录

简单来说,LPCTSTR 就表示字符串指针。

那么和 char* 又有什么区别呢?

大家用 char 表示字符时,英文占用一个字节,中文站用两个字节。这样有一个严重的问题:两个字节,究竟是两个英文字符,还是一个中文字符?为了解决这个问题,unicode 编码诞生了。

常见的 unicode 编码不管中文英文都用两个字节表示,用 wchar_t 来定义。

为了让代码适应 char 和 wchar_t 两种情况,可以用 TCHAR 宏,这个宏当项目定义为 unicode 时表示 wchar_t,否则表示 char。

对应的,还有 _T("") 宏用来表示字符串,例如 _T("abc") 在项目为 unicode 时表示 L"abc",否则表示 "abc"。

然后再看 LPCTSTR,它是以下几个概念的缩写:Long Point Const Tchar STRing,这样意思就明确了吧。

评论 (3) -

  • _T好像vs2019会出问题,用TEXT()比较好。
    以前不知道这概念走了不少弯路
  • emmmm所以是啥意思啊,它对应的数据类型还是没有就很理解

添加评论