LPCSTR、LPCTSTR和LPTSTR之间的区别是什么
为什么我们需要这样做才能将字符串转换为LV / _ITEM结构变量pszText:
LV_DISPINFO dispinfo;
dispinfo.item.pszText = LPTSTR((LPCTSTR)string);发布于 2008-11-26 17:09:48
回答你问题的第一部分:
LPCSTR是指向常量字符串的指针(LP表示Long Pointer)
LPCTSTR是指向UNICODE字符串的指针(TCHAR是宽字符还是宽字符,取决于项目中是否定义了UNICODE)
LPTSTR是指向(非常数) TCHAR字符串的指针
在实践中,在过去讨论这些时,为了简单起见,我们省略了“指向a的指针”这一短语,但正如lightness-races In -orbit所提到的,它们都是指针。
这是一个描述C++字符串的很棒的codeproject article (请参阅2/3向下的方式来比较不同类型的图表)
发布于 2008-11-27 01:09:36
快速和肮脏:
LP == Long Pointer.只需考虑指针或字符*
C = Const,在这种情况下,我认为他们的意思是字符串是常量,而不是指针是常量。
STR为string
T用于宽字符或字符(TCHAR),具体取决于编译选项。
发布于 2008-11-26 17:12:56
补充约翰和蒂姆的答案。
除非是针对Win98进行编码,否则在应用程序中只应使用两种6+字符串类型
LPWSTRLPCWSTR其余的则是为了支持ANSI平台或双编译。这些在今天已经不像以前那么重要了。
https://stackoverflow.com/questions/321413
复制相似问题