String类型转LPCTSTR -----理解C++中的字符串类型转换
在看代码时,发现有时候会把string类型转换为LPCTSTR, 刚开始不理解为什么要做这个转换,所以做了一些调查,现在记录如下
是这样的,STRING是代表C++中的字符串string, 而LPCTSTR代表的是Windows系统中的字符串类型。 也就是说,这样转换的目的是为了把C++中的字符串string转换为Windows系统中的字符串类型LPCTSTR
我们知道,LPCTSTR是一种指针类型,它指向的是一个 const TCHAR数组,其中TCHAR数组中的字符可以是字符(char), 也可以是宽字符(wchar_t). => 所以 string 转LPCTSTR的目的就是为了使C++程序可以和Windows API进行交互, 因为Windows API只接受LPCTSTR作为字符串参数
这是最常见的情况,就是和Windows API交互时,因为Windows API只接受LPCTSTR作为字符串参数, 所以在调用Windows API之前,必须先将C++字符串转换为LPCTSTR
另外一种情况就是 在C++中需要使用宽字符串,来支持多语言环境(有的语言需要宽字符串来存储),这种时候也可以把string转换为LPCTSTR(支持宽字符串)
方法:
使用string转LPCTSTR的方法有2个,一个是c_str()函数,另一个是使用_tcscpy()函数
LPCTSTR str = testString.c_str();
TCHAR buffer[256]; _tcscpy(buffer, testString.c_str()); LPCTSTR str = buffer;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2018-04-12 NPM run start使用本地的http-server
2018-04-12 Umbraco Examine 实现Fuzzy search
2018-04-12 Umbraco Examine Search (Lucene.net) french accent
2017-04-12 C# 移除string[] 数组中的指定元素
2016-04-12 转载 ASP.NET MVC中使用ASP.NET Identity