LPCSTR、LPCTSTR 和 LPTSTR

2021-12-05 00:00:00 windows visual-c++ c++ mfc

LPCSTRLPCTSTRLPTSTR 有什么区别?

What the difference between LPCSTR, LPCTSTR and LPTSTR?

为什么我们需要这样做将字符串转换为LV/_ITEM结构变量pszText:

Why do we need to do this to convert a string into a LV / _ITEM structure variable pszText:

LV_DISPINFO dispinfo;  
dispinfo.item.pszText = LPTSTR((LPCTSTR)string);

推荐答案

回答您问题的第一部分:

To answer the first part of your question:

LPCSTR 是一个指向 const 字符串的指针(LP 表示 Long指针)

LPCSTR is a pointer to a const string (LP means Long Pointer)

LPCTSTR 是一个指向 const TCHAR 字符串的指针,(TCHAR 是宽字符还是字符取决于 UNICODE 是否在你的项目)

LPCTSTR is a pointer to a const TCHAR string, (TCHAR being either a wide char or char depending on whether UNICODE is defined in your project)

LPTSTR 是一个指向(非常量)TCHAR 字符串

LPTSTR is a pointer to a (non-const) TCHAR string

在实践中,过去在讨论这些时,为了简单起见,我们省略了指向 a 的指针"短语,但正如 lightness-races-in-orbit 所述,它们都是指针.

In practice when talking about these in the past, we've left out the "pointer to a" phrase for simplicity, but as mentioned by lightness-races-in-orbit they are all pointers.

这是一篇很棒的 codeproject 文章,描述了 C++ 字符串(参见 2/3比较不同类型的图表的下降方式)

This is a great codeproject article describing C++ strings (see 2/3 the way down for a chart comparing the different types)

相关文章