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

LPCTSTR和LPTSTR和char *究竟有什么区别的更多相关文章

  1. LPSTR、LPCSTR、LPTSTR、LPCTSTR、LPWSTR及LPCWSTR的意义及区别

    引用 LPSTR.LPCSTR.LPTSTR.LPCTSTR.LPWSTR及LPCWSTR的意义及区别 1.ANSI(即MBCS):为多字节字符集,它是不定长表示世界文字的编码方式.ANSI表示英文字 ...

  2. 面试现场:说说char 和 varchar的区别你了解多少?

    Hi,大家好!我是白日梦!本文是MySQL专题的第 26 篇. 下文还是白日梦以自导自演的方式,围绕"说说char 和 varchar的区别你了解多少?"展开本话题.看看你能抗到第 ...

  3. 面试官疯狂问我:char和varchar的区别 怎么办?愣着干嘛?进来白嫖啊!

    MySQL的修仙之路,图文谈谈如何学MySQL.如何进阶!(已发布) 面前突击!33道数据库高频面试题,你值得拥有!(已发布) 大家常说的基数是什么?(已发布) 讲讲什么是慢查!如何监控?如何排查?( ...

  4. mysql中char与varchar的区别分析(补充一句,int和integer没区别)

    转自:http://www.jb51.net/article/23575.htm 在mysql教程中char与varchar的区别呢,都是用来存储字符串的,只是他们的保存方式不一样罢了,char有固定 ...

  5. TEXT、TINYTEXT、MEDIUMTEXT、LONGTEXT选择 和 char varchar varchar2 的区别

    TEXT.TINYTEXT.MEDIUMTEXT.LONGTEXT选择: 储存不区分大小写的字符数据 TINYTEXT 最大长度是 255 (2^8 - 1) 个字符. TEXT 最大长度是 6553 ...

  6. char varchar varchar2 的区别 (转)

    char varchar varchar2 的区别       http://blog.csdn.net/honglei_zh/article/details/7172538区别:1.CHAR的长度是 ...

  7. MYSQL—— char 与 varchar的区别!

    一.char 和 varchar 的区别: 1)取值范围: char:取值范围:0~255 varchar:取值范围:0~65535 2)空间占用与速度: char: 定长字符串,占用空间大,速度快, ...

  8. "=="和 equals 方法究竟有什么区别?

    "=="和 equals 方法究竟有什么区别? ==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同, 要比较两个基本类型的数据或两个引 ...

  9. [百家号]雷电3和USB Type-C究竟有什么区别?

    雷电3和USB Type-C究竟有什么区别? https://baijiahao.baidu.com/s?id=1617271490773519582&wfr=spider&for=p ...

随机推荐

  1. [vuex]——使用vuex解决模块间传值问题

    二月的第四个周末,在家.受寒流的影响,深圳天气持续冰冻了好几天,天冷人就变得懒动,迷迷糊糊睡到了快十点,终于在饥饿的催促下起床. 和妹子吃完粥后,百无聊赖.透过窗户,发现太阳依旧没有露头的打算,我们也 ...

  2. mysqlbinlog初识

    mysql-binlog->解析mysql的binlog日志 mysql的binlog日志是什么? 数据目录下的日下文件就是mysql的binlog日志 mysql-bin.00001 mysq ...

  3. JavaScript基本概要

    body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...

  4. MySql查询生日的两种方式

    需要是要查询日期段内过生日的会员,分为两种情况: 1. 不跨年 例如: 查询2017-01-01到2017-01-20之间过生日的会员  (假定今天是2017-01-01则这种也可以描述为20天内过生 ...

  5. ReactNative 问题集合

    在线流畅播放视频 (建议调用原生的视频组件, 或者在成熟的安卓 ios组件封装一层) 如何指定页面横屏 (在这个组件react-native-orientation基础上改写) webSocket不和 ...

  6. Kafka术语解释

    前一篇文章介绍了如何使用kafka收发消息,但是对于kafka的核心概念并没有详细介绍,这里将会对包括kafka基本架构以及消费者.生产者API涉及的术语进行说明.了解这些术语有助于更深入理解kafk ...

  7. C++ readdir、readdir_r函数

    readdir, readdir_r - 读一个目录 readdir函数: struct dirent *readdir(DIR *dirp); The  data  returned by read ...

  8. Yii用AJAX注册验证

    <script type="text/javascript"> $(document).ready(function(){ $('#RegisterForm_usern ...

  9. 浅谈SQL Server---2

    浅谈SQL Server内部运行机制 https://www.cnblogs.com/wangjiming/p/10098061.html 对于已经很熟悉T-SQL的读者,或者对于较专业的DBA来说, ...

  10. C# 实现网络时间同步功能

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...