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
  • 相关阅读:
    csu1217: 奇数个的那个数
    小试SAS 判别分析
    bfs poj2965
    STL set常用操作
    csu1002 A+B(III)
    HDOJ 1002 的几种方法
    SQL知识积累
    CSV文件格式介绍
    ASP.net Web Form 知识积累
    C# 位域[flags] 枚举
  • 原文地址:https://www.cnblogs.com/songfeixiang/p/3733665.html
Copyright © 2011-2022 走看看