zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Nagios显示器mysql定从库: libmysqlclient.so.18: cannot open shared object file: No such
    UVA 11402
    Oracle 11g 的PL/SQL函数结果缓存
    最大公约数(Greatest Common Divisor)
    计时器 Timer
    ArcGIS Engine 捕捉
    AE+C# 图层中增加相应属性标注
    C# ComboBox自动完成功能的示例
    Visual Assist的破解与安装
    GitHub的代码托管和使用方法
  • 原文地址:https://www.cnblogs.com/songfeixiang/p/3733665.html
Copyright © 2011-2022 走看看