• LPCTSTR和LPTSTR和char *究竟有什么区别


    LPSTR = char*
    LPCSTR = const char*

    LPTSTR:
    如果定义了UNICODE宏,那么LPTSTR = wchar_t*否则LPTSTR = char*

    LPCTSTR:
    如果定义了UNICODE宏,那么LPCTSTR = const wchar_t*,否则LPCSTR = const char*


    告诉你方法,
    "LP"前缀是历史遗留的,在Win32下就是 P ,代表指针的含义。
    "C"代表const
    "T"的含义就是如果定义了UNICODE,它就是宽字符版本,否则就是Ansi版本。
    完整定义如下:

    //Unicode 版本

    typedef wchar_t WCHAR;
    typedef WCHAR *PWCHAR;
    typedef WCHAR *LPWCH, *PWCH;
    typedef CONST WCHAR *LPCWCH, *PCWCH;
    typedef WCHAR *NWPSTR;
    typedef WCHAR *LPWSTR, *PWSTR;
    typedef WCHAR UNALIGNED *LPUWSTR, *PUWSTR;

    typedef CONST WCHAR *LPCWSTR, *PCWSTR;
    typedef CONST WCHAR UNALIGNED *LPCUWSTR, *PCUWSTR;


    // Ansi版本

    typedef CHAR *PCHAR;
    typedef CHAR *LPCH, *PCH;

    typedef CONST CHAR *LPCCH, *PCCH;
    typedef CHAR *NPSTR;
    typedef CHAR *LPSTR, *PSTR;
    typedef CONST CHAR *LPCSTR, *PCSTR;


    #ifdef UNICODE
        typedef WCHAR TCHAR, *PTCHAR;
        typedef WCHAR TBYTE , *PTBYTE ;
        typedef LPWSTR LPTCH, PTCH;
        typedef LPWSTR PTSTR, LPTSTR;
        typedef LPCWSTR PCTSTR, LPCTSTR;
        typedef LPUWSTR PUTSTR, LPUTSTR; 
        typedef LPCUWSTR PCUTSTR, LPCUTSTR;
        typedef LPWSTR LP;
    #else
        typedef char TCHAR, *PTCHAR;
        typedef unsigned char TBYTE , *PTBYTE ;
        typedef LPSTR LPTCH, PTCH;
        typedef LPSTR PTSTR, LPTSTR, PUTSTR, LPUTSTR;
        typedef LPCSTR PCTSTR, LPCTSTR, PCUTSTR, LPCUTSTR;
    #endif
  • 相关阅读:
    关于CDH集群spark的三种安装方式简述
    CDH高可用hadoop集群性能配置
    CDH集群的时间同步--简要配置要求
    CDH集群的配置优化须知
    MySQL在Linux系统环境的安装和无主机登录配置
    配置文件my.cnf---配置信息注释大全
    Scrapy项目
    Scrapy项目
    Scrapy项目
    Scrapy项目
  • 原文地址:https://www.cnblogs.com/songfeixiang/p/3733665.html
Copyright © 2020-2023  润新知