1、LPCTSTR和LPTSTR和char *的区别

LPSTR = char*
LPCSTR = const char*

LPTSTR:
如果定义了UNICODE宏,那么baiLPTSTR = wchar_t*否则duLPTSTR = char*
LPCTSTR:
如果定义了UNICODE宏,那么LPCTSTR = const wchar_t*,否则LPCSTR = const char*
告诉你方法zhi,
"LP"前缀是dao历史遗留的,在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 *究竟有什么区别

2、char* 转换成 LPCTSTR

char ch[1024] = "wo shi ni baba";
int num = MultiByteToWideChar(0,0,ch,-1,NULL,0);
wchar_t *wide = new wchar_t[num];
MultiByteToWideChar(0,0,ch,-1,wide,num);

解析:

num 获得长字节所需的空间

MultiByteToWideChar()表示将s中的字符传递到ps指向的内存中。-1表示传输至s中的'\0'处,num表示传递的字节个数。

3、LPCTSTR 转换成 char *

wchar_t widestr[1024] = L"wo shi ni yeye";
int num = WideCharToMultiByte(CP_OEMCP,NULL,widestr,-1,NULL,0,NULL,FALSE);
char *pchar = new char[num];
WideCharToMultiByte (CP_OEMCP,NULL,widestr,-1,pchar,num,NULL,FALSE);

参考:char* 与 LPCTSTR 类型的互相转换

LPCTSTR和LPTSTR和char *的区别及相互转化相关推荐

  1. 区分LPCTSTR和LPTSTR和char *

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

  2. java char的包装对象,Java 从Character和char的区别来学习自动拆箱装箱

    本文结构 1.Character和char 的区别: 2.自动拆箱装箱java 1.Character和char 的区别: Character是类,char基本数据类型.数组 在java中有三个类负责 ...

  3. c语言中 char怎样用,C语言中char*和char[]用法区别分析

    C语言中char*和char[]用法区别分析 本文实例分析了C语言中char* 和 char []的区别.分享给大家供大家参考之用.具体分析如下: 一般来说,很多人会觉得这两个定义效果一样,其实差别很 ...

  4. int main中char** argv与char *argv[]区别?(main函数)

    标准main函数写法(两种都可以): int main(int argc, char** argv){} int main(int argc, char* argc[]){} 怎么还是有点懵逼呢/?? ...

  5. CString与string、char*的区别和转换

    我们在C++的开发中经常会碰到string.char*以及CString,这三种都表示字符串类型,有很多相似又不同的地方,常常让人混淆.下面详细介绍这三者的区别.联系和转换: 各自的区别 char*: ...

  6. char *a 与char a[] 的区别和char** argv与char *argv[]区别

    char *a 与char a[] 的区别 char *a = "hello" 中的a是指向第一个字符'a'的一个指针 char a[20] = "hello" ...

  7. c语言char有什么作用,C语言中char*和char[]用法区别分析

    本文实例分析了C语言中char* 和 char []的区别.分享给大家供大家参考之用.具体分析如下: 一般来说,很多人会觉得这两个定义效果一样,其实差别很大.以下是个人的一些看法,有不正确的地方望指正 ...

  8. unsigned char与char的区别

    两者都作为字符用的话是没有区别的,但当整数用时有区别: char 整数范围为-128到127( 0x80__0x7F),   而unsigned char 整数范围为0到255( 0__0xFF ) ...

  9. c# char unsigned_C 中 char、signed char 和 unsigned char 的区别

    C 中 char.signed char 和 unsigned char 的区别 来源:http://bbs.chinaunix.net/thread-889260-1-1.html 参考:https ...

最新文章

  1. 一封邮件, 就能看出你是不是足够专业
  2. android社会化分享
  3. (JAVA)超大整数运算
  4. Git仓库迁移,包括所有的分支、标签、日志
  5. Linux学习笔记(四)之用户登录
  6. 与时俱进 挪威央行运用大数据预测经济情况
  7. mysql数据库存储过程语法错误_奇怪的mysql创建存储过程语法错误
  8. 四阶龙格库塔法c语言程序,四阶龙格库塔法C语言(西安交大)
  9. 数据分析:数据分析工具:SPSS、RapidMiner、KNIME、Kettle
  10. Ghostscript的介绍
  11. 手把手教你快速搭建Struts2框架【详细教程,建议收藏】
  12. 自定义 Chrome (谷歌浏览器) 主题
  13. Scratch编程与数学之求累加和!
  14. 计算机桌面为什么没有语言栏了,语言栏不见了怎么办,教您语言栏不见了怎么办...
  15. win7 无法访问服务器共享文件夹,win7系统共享文件夹无法访问的解决方法
  16. Java中的偏向锁,轻量级锁, 重量级锁解析
  17. Python读取图片内容并进行修改
  18. html铺满整个页面_html 怎么让背景图铺满整个页面?
  19. w7怎么写html代码,笔记本win7系统使用记事本编辑和运行html代码的方法
  20. 什么是五险一金,你懂吗?

热门文章

  1. JAVA根据营地号获取王者荣耀数据(王者荣耀战绩及王者荣耀对局详情查询)网页源码下载
  2. Django制作blog界面
  3. MES管理系统的应用和好处有哪些
  4. 跬智信息 (Kyligence) 成功入选 2021 年度上海市“专精特新”企业名单
  5. python算法之冒泡排序
  6. IOS隐私政策(Privacy Policy)
  7. ContentProvider操作数据库—一项古老的Android技术
  8. 通过一些免费的小工具营销
  9. 数据填报有什么用?数据填报系统具有哪些优势?_光点科技
  10. The Ribbon Tab with id: Ribbon.Read has not been made available for this page or does not exist.