LPTSTR、LPCSTR、LPCTSTR、LPSTR的意义 - 豆子的专栏 - 优快云Blog

保姆级教程:用SOEM库搞定汇川SV660N伺服驱动器的EtherCAT PDO映射配置 本文提供了一份详细的SOEM库与汇川SV660N伺服驱动器EtherCAT PDO映射配置教程。通过解析EtherCAT通信基础、SOEM库核心功能及PDO映射原理,结合实战代码示例,帮助工程师快速掌握伺服驱动器的配置技巧,提升工业自动化系统的开发效率。 阅读详情
UNICODE:它是用两个字节表示一个字符的方法。比如字符'A'在ASCII下面是一个字符,可'A'在UNICODE
下面是两个字符,高字符用0填充,而且汉字'程'在ASCII下面是两个字节,而在UNICODE下仍旧是两个字节
。UNICODE的用处就是定长表示世界文字,据统计,用两个字节可以编码现存的所有文字而没有二义。   
MBCS,它是多字节字符集,它是不定长表示世界文字的编码。MBCS表示英文字母时就和ASCII一样(这也
是我们容易把MBCS和ASCII搞混的原因),但表示其他文字时就需要用多字节。   
WINDOWS下面的程序设计可以支持MBCS和UNICODE两种编码的字符串,具体用那种就看你定义了MBCS宏还是
UNICODE宏。MBCS宏对应的字符串指针是char*也就是LPSTR,UNICODE对应的指针是unsigned   short*也
就是LPWSTR,为了写程序方便微软定义了类型LPTSTR,在MBCS下他就是char*,   在UNICODE下它是
unsigned   char*,这样你就可以重定义一个宏进行不同字符集的转换了。 

LPTSTR、LPCSTR、LPCTSTR、LPSTR的意义:

LPSTR:32bit指针 指向一个字符串,每个字符占1字节

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

Windows使用两种字符集ANSI和UNICODE,前者就是通常使用的单字节方式,但这种方式处理象中文这样的双字节字符不方便,容易出现半个汉字的情况。而后者是双字节方式,方便处理双字节字符。WindowsNT的所有与字符有关的函数都提供两种方式的版本,而Windows9x只支持ANSI方式。_T一般同字常数相关,如_T("Hello"。如果你编译一个程序为ANSI方式,_T实际不起任何作用。而如果编译一个程序为UNICODE方式,则编译器会把"Hello"字符串以UNICODE方式保存。_T和_L的区别在于,_L不管你是以什么方式编译,一律以UNICODE方式保存.

 Windows核心编程的第一章。

L是表示字符串资源为Unicode的。

比如 wchar_t Str[] = L"Hello World!"; 这个就是双子节存储字符了。

_T是一个适配的宏~

当 #ifdef _UNICODE的时候 _T就是L 没有#ifdef _UNICODE的时候 _T就是ANSI的。

比如

LPTSTR lpStr = new TCHAR[32]; TCHAR* szBuf = _T("Hello"); 以上两句使得无论是在UNICODE编译条件下都是正确编译的。

而且MS推荐你使用相匹配的字符串函数。 比如处理LPTSTR或者LPCTSTR 的时候,不要用strlen ,而是要用_tcslen

否则在UNICODE的编译条件下,strlen不能处理 wchar_t*的字符串。

T是非常有意思的一个符号(TCHAR、LPCTSTR、LPTSTR、_T()、_TEXT()...),它表示使用一种中间类型,既不明确表示使用 MBCS,也不明确表示使用 UNICODE。那到底使用哪种字符集?编译的时候才决定 本文转自 http://blog.youkuaiyun.com/douzixinxin/archive/2006/07/03/869937.aspx

DSP28335新手避坑指南:手把手教你用CCS6.2生成10KHz SPWM(附完整工程) 本文详细介绍了如何使用DSP28335开发板和CCS6.2环境生成10KHz SPWM波形的完整工程指南。从开发环境配置、ePWM模块设置到SPWM算法实现,特别针对新手常见问题提供了解决方案和调试技巧,帮助工程师快速掌握DSP28335的SPWM生成技术。 阅读详情

相关推荐

similarity network fusion for aggregating data types on a genomic scale

基因组规模上的聚合数据类型的相似性网络融合 摘要:         近期的技术已经使收集不同类型的全基因组数据十分划算,结合这些数据去创建一个给定的疾病或生物过程的一个全面视图的计算方法是有必要的。相似网络融合(SNF:similarity network fusion)通过创建每一个可利用的数据类型的样本(如,患者)的网络可以解决这个问题。例如,创建一个给定一群患者疾病的全面视图,SNF计算

augustar学习笔记 7869

LPTSTR

UNICODE:它是用两个字节表示一个字符的方法。比如字符'A'在ASCII下面是一个字符,可'A'在UNICODE下面是两个字符,高字符用0填充,而且汉字'程'在ASCII下面是两个字节,而在UNICODE下仍旧是两个字节 。UNICODE的用处就是定长表示世界文字,据统计,用两个字节可以编码现存的所有文字而没有二义。 MBCS,它是多字节字符集,它是不定长表示世界文字的编码。MBCS表示英文字母时就和ASCII一样(这也是我们容易把MBCS和ASCII搞混的原因),但表示其他文字时就需要用多字节。..

dlxt99的博客 1701

Qwen2.5-Omni实战:5分钟搞定多模态AI模型本地部署(含Thinker-Talker架构解析)

本文详细介绍了Qwen2.5-Omni多模态AI模型的本地部署流程,包括硬件配置、环境准备和实战应用开发。特别解析了其创新的Thinker-Talker架构,该架构通过TMRoPE位置编码实现跨模态同步处理,大幅提升多模态任务效率。5分钟即可完成部署,适合开发者快速实现文本、图像和音频的联合处理。

weixin_29085865的博客 171

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

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"代.

juluwangriyue的博客 5582

【Cadence】 ADS Dynamic Link使用教程

在Cadence617上使用ADS Dynamic Link

乾巽的博客 6074

verilog常用模块1——按键消抖模块详解

按键消抖模块key_filter 1. 原理介绍 如图,按键未按下时keys信号为高电平,按下则为低电平;通过检测keys信号电平,就可以判断按键状态。 但反作用弹簧会导致抖动现象,电平信号出现一段不确定波形 一般情况下,抖动的电平信号为1的持续时间不会超过20ms,只要通过对抖动波形的发生时长计时(计数),当为1的时长超过20ms,则可判定 进入了发生了按键按下/释放动作,并确定按键状态...

coin的博客 1万+

关于LPSTR、LPCSTR、LPTSTR和LPCTSTR

LPSTR: 指向一个字符串的32位指针,每个字符占1个字节。 LPCSTR:指向一个常量字符串的32位指针,每个字符占1个字节。 LPTSTR:指向一个字符串的32位指针,每个字符可能占1个字节或2个字节。此字串可移植到Unicode和DBCS LPCTSTR:指向一个常量字符串的32位指针,每个字符可能占1个字节或2个字节。此字串可移植到Unicode 和DBCS ANSI(即MBCS):多字节字符集,不定长表示世界文字的编码方式。ANSI表示英文字母时就和ASCII一样,但表示其他文字时就需要用

随心漂流的博客 2701

OpenMV识别颜色源码

【代码】OpenMV识别颜色源码。

dxt258013的博客 403

C++ | 一文读懂C++字符串(string、CString、LPSTR、LPTSTR、LPWSTR...)

C++ 字符串讲解,字符串从此不再迷茫(学习中,可能会出现理解误区,欢迎指正)

王雪亮 7571

医疗影像分析实战:肺炎X光片分类与分割

医疗影像分析实战:肺炎X光片分类与分割 ,人工智能,计算机视觉,大模型,AI,在医疗领域,医疗影像分析技术凭借其高效、精准的特点,成为疾病诊断与治疗的重要辅助手段。肺炎作为一种常见的呼吸道疾病,严重威胁人类健康,通过 X 光片对肺炎进行诊断是临床常用方法。利用计算机技术实现肺炎 X 光片的自动分类与分割,不仅能减轻医生的工作负担,还能提高诊断的准确性和效率。本文将深入讲解肺炎 X 光片分类与分割的实战过程,结合大量代码示例和关键概念解析,帮助读者掌握相关技术。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 3万+

基于 ESP32 的智能药盒提醒装置设计与实现

本装置基于 ESP32 实现了智能药盒的核心功能,硬件选型兼顾成本与实用性,软件设计模块化、易拓展。后续可通过 ESP32 的 WiFi 模块接入物联网平台(如阿里云、OneNet),实现远程设置提醒、服药状态反馈等功能,进一步提升智能化水平。该装置能有效解决老人忘服药问题,具有较高的实用价值与推广潜力。

weixin_42300449的博客 1043

LPTSTR、LPCSTR、LPCTSTR、LPSTR的意义

 LPTSTR、LPCSTR、LPCTSTR、LPSTR的来源及意义UNICODE:它是用两个字节表示一个字符的方法。比如字符A在ASCII下面是一个字符,可A在UNICODE下面是两个字符,高字符用0填充,而且汉字程在ASCII下面是两个字节,而在UNICODE下仍旧是两个字节。UNICODE的用处就是定长表示世界文字,据统计,用两个字节可以编码现存的所有

1605

W5500以太网&PoE扩展模块原理图设计,已量产

本文将以 W5500 以太网 & PoE 扩展板为对象,从嵌入式硬件设计的视角,深度拆解其电路架构、核心器件选型、关键功能实现,以及这款板子解决行业痛点的设计思路。

不脱发的程序猿 940

LPTSTR\LPCTSTR\LPWSTR\LPCWSTR 字母的意思 及 区别

为了满足程序代码国际化的需要,业界推出了Unicode标准,它提供了一种简单和一致的表达字符串的方法,所有字符中的字节都是16位的值,其数量也可以满足差不多世界上所有书面语言字符的编码需求,开发程序时使用Unicode(类型为wchar_t)是一种被鼓励的做法。9、T是一个非常重要的符号(TCHAR、LPTSTR、LPCTSTR、_T()和_TEXT()等),它表示使用一个中间类型,既不明确表示使用MBCS,也不明确表示使用Unicode。7、_T是一个适配宏。否则,_T的字符串采用ANSI编码方式。

miyoudechuntian的博客 1459

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

LPSTR、LPCSTR、LPTSTR和LPCTSTR的意义及区别

LPSTR、LPCSTR、LPTSTR和LPCTSTR的意义及区别    1、ANSI(即MBCS):为多字节字符集,它是不定长表示世界文字的编码方式。ANSI表示英文字母时就和  ASCII一样,但表示其他文字时就需要用多字节。  2、Unicode:用两个字节表示一个字符的编码方式。比如字符'A'在ASCII下面用一个字节表示,而在  Unicode下面用两个字节表示,其中高字

u011392772的专栏 1853

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

c++中LPCTSTR,LPTSTR 解释

char是C语言标准数据类型,字符型,至于由几个字节组成通常由编译器决定,一般一个字节。Windows为了消除各编译器的差别,重新定义了一些数据类型,你提到了另外几个类型都是这样。CHAR为单字节字符。还有个WCHAR为Unicode字符,即不论中英文,每个字有两个字节组成。它实际定义在<string.h>里: typedef unsigned short wchar_t。 下面在看...

u011555996的博客 2万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

LPTSTR详解

LPTSTR   与char*等价,表示普通字符/字符串变量,指向字符/字符串的指针。   LP:长指针(long pointer)。   T:win32环境中有一个_T宏,用来标识字符是否采用Unicode编码(两字节表示一个字符),若程序中定义了Unicode,该字符/字符串被作为Unicode字符串,否则就是标准的ANSI(单字节表示一个字符)字符串。   STR:表示这个变量是一个字符串...

feihensq的专栏 5403

const char to LPCTSTR不能转化问题

 Visual C++ 2008里cannot convert parameter 1 from const char [13] to LPCTSTR造成不能运行的原因主要是2005和2008中增加了一些参数类型的安全性检查,所以通常在6.0没有问题的LPCTSTR与const char之间的转换到了这里就玩不转。微软给出的解决办法有两个: Change your projec

水.竹.林 1322

LPSTR/LPCSTR/LPWSTR/LPCWSTR/LPTSTR/LPCTSTR字符串指针

LPCTSTR:如果定义了UNICODE或者其他相关的宏,就相当于LPCWSTR;LPTSTR:如果定义了UNICODE或者其他相关的宏,就相当于LPWSTR;否则就相当于LPSTR。LPCWSTR:一个指向以NULL结尾的常量UNICODE字符串的指针。LPCSTR:一个指向以NULL结尾的常量ANSI字符串的指针。LPWSTR:一个指向以NULL结尾的UNICODE。LPSTR:一个指向以NULL结尾的ANSI。T表示在Win32中的_T宏。W表示宽字符wchar_t。P表示指针pointer。

adobe178的博客 600

LPCTSTR、LPSTR与LPTSTR

1、 如何理解LPCTSTR类型?   L表示long指针  (这是为了兼容Windows 3.1等16位操作系统遗留下来的,在win32中以及其他的32为操作系统中, long指针和near指针及far修饰符都是为了兼容的作用。没有实际意义。)  P表示这是一个指针  C表示是一个常量  T表示在Win32环境中, 有一个_T宏(这个宏用来表示你的字符是否使用UNICODE, 如果你的程

wuwangxinannana的专栏 941

LPTSTR、LPCSTR、LPCTSTR、LPSTR解析

1、ANSI(即MBCS):为多字节字符集,它是不定长表示世界文字的编码方式。ANSI表示英文字母时就和 ASCII一样,但表示其他文字时就需要用多字节。 2、Unicode:用两个字节表示一个字符的编码方式。比如字符'A'在ASCII下面用一个字节表示,而在 Unicode下面用两个字节表示,其中高字节用“0”填充;函数'程'在ASCII下面用两个字节表示,而在 Unicode下面也是用

小龙王2010 1282

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

LPSTR、LPCSTR、LPTSTR、LPCTSTR、LPWSTR及LPCWSTR的意义及区别 : Windows下的程序设计可以支持ANSI和Unicode两种编码方法的字符串,具体使用哪种就要看定义了MBCS宏还是Unicode宏。 MBCS宏对应的字符串指针为LPSTR(即char*),Unicode对应的指针为LPWSTR(即wchar_t*)。为了写程序的方便, 微软定义了类型L

wangxiaokang1_1的专栏 1335

vs与vc之间项目转换 unicode-mbcs

1.MSDN是这样定义原型的:     typedef   CONST   CHAR   *LPCSTR,   *PCSTR;     typedef   LPCSTR   LPCTSTR;     typedef   WCHAR   *LPWSTR,   *PWSTR;     typedef   CONST   WCHAR   *LPCWSTR,   *PCWSTR;

Harrd的专栏 1016

LPSTR、LPWSTR、LPCSTR、LPCWSTR、LPTSTR、LPCTSTR的区分与转化

 首先在编译程序时经常会遇到这种问题:错误 1 error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [3]”转换为“LPCTSTR” 1、觉得很烦,一般的做法就是不管三七二十一,在字符串前面加一个‘L’:如调用函数FUN(LPCTSTR str)时,不能  FUN("HELLO");     而是FUN(L"HELLO");

jize00的专栏 2万+

LPTSTR转换为std::string方法探索

在VC编程中,经常会遇到字符串之间的转换,本文就LPTSTR转换为std::string进行探讨。 在unicode环境下,LPTSTR表示宽字符 有两种方法 1、 LPTSTR sddd = _T("ddddd");   char *ansiRemoteHost = new char[wcslen(sddd)*2+1];   memset(ansiRemoteHost,0,wcsle

心如止水-GISer的成长之路 9151
上一篇: 奇怪的宏
下一篇: VC++常用数据类型及其操作详解 - TMD 程序员宁有种乎? - 博客园
yingzai621
博客等级 码龄19年 12粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值