大家好,小乐来为大家解答以上的问题。LPCTSTR与string之间的转换,lpctstr这个很多人还不知道,现在让我们一起来看看吧!
1、LPCTSTR类型:L表示long指针 这是为了兼容Windows 3.1等16位操作系统遗留下来的,在win32中以及其他的32位操作系统中, long指针和near指针及far修饰符都是为了兼容的作用。
2、没有实际意义。
3、P表示这是一个指针。
4、C表示是一个常量。
5、T表示在Win32环境中, 有一个_T宏。
6、STR表示这个变量是一个字符串。
7、LPCTSTR表示一个指向常固定地址的可以根据一些宏定义改变语义的字符串。
8、同样,LPCSTR就只能是一个ANSI字符串,在程序中我们大部分时间要使用带T的类型定义。
9、LPCTSTR == const TCHAR * CString 和 LPCTSTR 可以说通用。
10、 原因在于CString定义的自动类型转换,没什么奇特的,最简单的C++操作符重载而已。
11、 常量字符串ansi和unicode的区分是由宏_T来决定的。
12、但是用_T("abcd")时, 字符串"abcd"就会根据编译时的是否定一_UNICODE来决定是char* 还是 w_char*。
13、 同样,TCHAR 也是相同目的字符宏。
14、 看看定义就明白了。
15、简单起见,下面只介绍 ansi 的情况,unicode 可以类推。
本文到此分享完毕,希望对大家有所帮助。
免责声明:本文由用户上传,如有侵权请联系删除!