我把视频暂停到了 https://www.bilibili.com/video/av79302998?p=62
然后去看了关于字节处理的方式,因为我发现提取一个字符串出来要每次写#ifdef UNICODE挺麻烦的
于是乎我看了 https://www.bilibili.com/video/av38413272/?p=1 的所有字节处理
● 窄字节: char、char * 、const char * CHAR、(PCHAR、PSTR、LPSTR)、LPCSTR ● Unicode 宽字节: wchar_t、wchar_t * 、const wchar_t * WCHAR、(PWCHAR、PWSTR、LPWSTR)、LPCWSTR ● T 通用类型: TCHAR、(TCHAR * 、PTCHAR、PTSTR、LPTSTR)、LPCTSTR
LPCTSTR类型: L表示long指针 这是为了兼容Windows 3.1等16位操作系统遗留下来的,在win32中以及其他的32位操作系统中, long指针和near指针及far修饰符都是为了兼容的作用。没有实际意义。 P表示这是一个指针 C表示是一个常量 T表示在Win32环境中, 有一个_T宏 STR表示这个变量是一个字符串
记忆方法: L(长)P(指针)C(常量)T(通用)STR(字符串)
原来我们只需要用通用类型处理字符串就好了..也就是其实是微软一层一层的套娃...
所以复杂是复杂,了解了定义之后就感觉不复杂了...
毕竟宏和字符串是CPP入门劝退大王...
然后cpp的string类只是上面的窄宽字节的一层套娃,加了一点成员函数,
string和CString的差别在于,string自带的成员函数少,所以CString又套了一层娃...
但是为了完善开发者对于字符串的使用,很多程序,例如QT又有QString....
为什么cpp标准它不提供完美一点的string类....
凌乱.....
⎛⎝⊙⏝⏝⊙。⎠⎞⎛⎝⓿⏝⏝⓿。⎠⎞
来源:https://www.cnblogs.com/JJBox/p/12535978.html