今天在做 COS脚本解释器的时候,遇到了这个问题

先了解一下 LPCTCHAR 这个东东

LPCTSTR用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏,那么这个字符或者字符串将被作为UNICODE字符串,否则就是标准的ANSI字符串。

那么什么叫UNICODE(统一码)???

背景知识:计算机发明后,为了在计算机中表示字符,人们制定了一种编码,叫ASCII码。ASCII码由一个字节中的7位(bit)表示,范围是0x00 - 0x7F 共128个字符。后来他们突然发现,如果需要按照表格方式打印这些字符的时候,缺少了“制表符”。于是又扩展了ASCII的定义,使用一个字节的全部8位(bit)来表示字符了,这就叫扩展ASCII码。范围是0x00 - 0xFF 共256个字符。中国人利用连续2个扩展ASCII码的扩展区域(0xA0以后)来表示一个汉字,该方法的标准叫GB-2312。后来,日文、韩文、阿拉伯文、台湾繁体(BIG-5)......都使用类似的方法扩展了本地字符集的定义,现在统一称为 MBCS 字符集(多字节字符集)。这个方法是有缺陷的,因为各个国家地区定义的字符集有交集,因此使用GB-2312的软件,就不能在BIG-5的环境下运行(显示乱码),反之亦然。

为了把全世界人民所有的所有的文字符号都统一进行编码,于是制定了UNICODE标准字符集。UNICODE 使用2个字节表示一个字符(unsigned shor int、WCHAR、_wchar_t、OLECHAR)。这下终于好啦,全世界任何一个地区的软件,可以不用修改地就能在另一个地区运行了。虽然我用 IE 浏览日本网站,显示出我不认识的日文文字,但至少不会是乱码了。UNICODE 的范围是 0x0000 - 0xFFFF 共6万多个字符,其中光汉字就占用了4万多个

1、LPCTSTR是什么?

LPCTSTR就是一个32-bit指针指向一个常字符串,每字符可能占1字节或2字节,取决于Unicode是否定义

LPCTSTR是一个windows API数据类型。根据windows API数据类型的命名规律:

1)L——long 指针,是为了兼容Window3.1等16位扣件系统遗留下来的,

在Win32中以及其他的32的扣件系统中,long 指针和near 指针及far 修饰符都是为了兼容的作用,而没有实际意义。

2)P表示该变量是一个指针,C表示是常量(const),STR表示的是字符串。因此LPCSTR是一个const char*类型。

这是一个windows(ANSI)字符串常量,它是多字节编码的。

3)LPCWSTR:而W表示的是宽字符,因此LPCWSTR表示的也是字符串常量,不过是Unicode编码的。

2、问题的解决

1、用THCAR代替char

2、字符串加_T(""),如_T("你好")

3、用_tcscpy等代替strcpy等

前俩种方法我都用了

其实我还是不太明白。为什么会出现这个问题呢??????

char 类型与lpcwstr_在vs中char类型的实参与LPCWSTR类型的形参类型不兼容怎么解决?...相关推荐

  1. IntelliSense: const char * 类型的实参与 LPCWSTR 类型的形参不兼容

    1.  在Windows程序设计中遇到错误: (1)IntelliSense:  "const char *" 类型的实参与 "LPCWSTR" 类型的形参不兼 ...

  2. “const char *“ 类型的实参与 “LPCWSTR“ 类型的形参不兼容,VScode

    不同于VS系列,VScode我找到没有快速的解决办法,只能一点一点来 问题: wnd.lpszClassName = "WindowClass"; 不能将 "const ...

  3. VSCode C/C++提示“LPCSTR 类型的实参与LPCWSTR类型的形参不兼容“

    VSCode C/C++提示"LPCSTR 类型的实参与LPCWSTR类型的形参不兼容" 问题产生原因 VSCode中的C/C++插件会对当前代码进行错误检测,并以波浪线或其它形式 ...

  4. java char数组转string数组_Java中char数组(字符数组)与字符串String类型的转换方法...

    本文实例讲述了Java中char数组(字符数组)与字符串String类型的转换方法.分享给大家供大家参考,具体如下: 在Java语言编程时,使用"口令字段"jPasswordFie ...

  5. java中char是几个字节_Java中char占用几个字节

    在讨论这个问题之前,我们需要先区分unicode和UTF. unicode :统一的字符编号,仅仅提供字符与编号间映射.符号数量在不断增加,已超百万.详细:[https://zh.wikipedia. ...

  6. 在vs中char类型的实参与LPCWSTR类型的形参类型不兼容怎么解决?

    今天在做 COS脚本解释器的时候,遇到了这个问题 先了解一下 LPCTCHAR 这个东东 LPCTSTR用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏,那么 ...

  7. char 类型与lpcwstr_「lpctstr」char* 与 LPCTSTR 类型的互相转换 - seo实验室

    lpctstr 1.char* 转换成 LPCTSTR char ch[1024] = "wo shi ni baba"; int num = MultiByteToWideCha ...

  8. C++ char*类型的实参与 LPCWSTR类型的形参不兼容

    都是Unicode字符集编码惹的祸,旧的教材上往往都使用多字符段编码 1.使用TCHAR 代替char 2.使用swprintf_s代替sprintf_s 3.使用TEXT函数或者是_L修饰const ...

  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. UVA 10494 - If We Were a Child Again(高精度除法和取余)
  2. 配置Trunk实现相同Vlan通信
  3. java中wait和notify的虚假唤醒问题
  4. cisco 路由器监控路由连通性_Cisco-路由器配置DHCP小实验
  5. 宝塔面板部署nuxt_MacOS下创建及部署vue.js项目(及Nuxt.js、PM2等相关流程)
  6. 深度2万字好文:图像处理-基于 PyTorch 的 YOLO v5 表情识别(附源代码)
  7. Winform datagridview相关操作
  8. pcdmis怎么导出模型_从代数几何到导出代数几何:复形的几何
  9. Simple-RTMP-Server 服务器搭建
  10. FPGA实验记录一:1位全加器设计
  11. Frammer X for mac(mac高清视频截图工具)
  12. 线性代数学习之对称矩阵与矩阵的SVD分解
  13. java常用的对象转map的几种方式
  14. java数组循环动态赋值_Java数组
  15. 大数据的四个典型特征
  16. 调整Oracle用户密码期限及错误登录次数
  17. 召唤神龙无敌版,轻松召唤神龙~
  18. 开源美狐美颜SDK功能代码分析
  19. 巴贝奇通用计算机设计思想称为,计算机有运算速度快精确度高有记忆和逻辑判断能力.docx...
  20. 《精益软件度量——实践者的观察与思考》—第1章1.2节度量是什么

热门文章

  1. 翠香猕猴桃文案,水果店翠香猕猴桃文案
  2. Python遇错:ModuleNotFoundError: No module named ‘IPython‘解决办法。
  3. 嵌入式linux-----ARM裸机(5)-----SDRAM和重定位relocate
  4. ajax返回值处理时间戳,获取时间戳 和 备用ajax案例
  5. Ubuntu下OpenCV的安装及实例
  6. jsp实现前后端交互
  7. Web开发种色系搭配方案和常用颜色码
  8. 优秀软件Agisoft PhotoScan Professional
  9. php循环某个月的所有日期
  10. Git安装配置过程-Win7