类型转换总结(CString 、char*、int、float、_bstr_t、LPCWSTR、LPSTR)

IOPaint模型部署教程 IOPaint是一款功能全面且强大的AI图像处理工具,它不仅免费开源,还由SOTA(State-of-the-Art,即最先进)AI模型驱动,为图像编辑和修复带来了前所未有的便利和高效。以下是对IOPaint的详细介绍: 阅读详情

http://blog.youkuaiyun.com/lebao82/article/details/7903827

1、CString转char*

CString 头文件#include <afx.h>

CString cstr;

char *p = (LPSTR)(LPCTSTR)cstr;


2、CString转_bstr_t

CString   cs= "aaa ";   
_bstr_t   bstr   =   (LPCTSTR)cs   ;


3、CString转LPCWSTR

两者的不同:LPCWSTR 是Unicode字符串指针,初始化时串有多大,申请空间就有多大,以后存贮若超过则出现无法预料的结果,这是它与CString的不同之处。而CString是一个串类,内存空间类会自动管理。

    CString转换成LPCWSTR

    方法一:CString strFileName;

                     LPCWSTR lpcwStr = strFileName.AllocSysString();

    方法二:CString str=_T("TestStr"); 

                    USES_CONVERSION; 
                    LPCWSTR lpcwStr = A2CW((LPCSTR)str); //CW2A将宽字符集(Unicode)转化为多字符集(ASCII)
                                                                                    //CA2W就是反过来转换了
                                                                                   //A2CW表示(LPCSTR)  -> (LPCWSTR)
    CString str(lpcwStr);    MFC中CString和LPSTR是可以通用,其中A2CW表示(LPCSTR)  -> (LPCWSTR),USER_CONVERSION表示用来定义一些中间变量,在使用ATL的转换宏之前必须定义该语句。

    LPCWSTR转换成CString

    LPCWSTR lpcwStr = L"TestWStr"; 

4、CString与LPSTR转换

     CString转换成LPSTR:

    方法一:CString strFileName;

                    LPSTR lpStr = strFileName.GetBuffer();

                    strFileName.ReleaseBuffer();

     方法二:CString strFileName;

                     LPSTR lpStr = (LPSTR)(LPCSTR)strFimeName;

      LPSTR转换成CString:

                      LPSTR lpStr = L"TestStr"; 
                      CString str(lpStr);

      注意:CString和LPCSTR可直接转换,如下:

                     CString str;

                     LPCSTR lpcStr = (LPCSTR)str;

5、CString和char*转换

       CString转换成char*
       方法一:CString str;
                       char* p = str.GetBuffer();
       方法二:CString str;
                       char* p = (LPSTR)(LPCSTR)str;
       char*转换成CString
                       char* p = "test";
                       CString str = ("%s",p);

6、String和int、float的转换

        可以使用atoi,atof,atol等函数来完成。

7、LPSTR(char*)和LPWSTR的转换

        可以使用下面的ATL宏来进行,最好是将变量定义成TCHAR、LPTSTR等T类型,可以避免转换。

8、CString转BYTE

       BYTE bText;

       CString str;

       bText = str.GetAt(n);

 

ATL宏介绍:

     A2BSTR   OLE2A             T2A            W2A 
     A2COLE   OLE2BSTR    T2BSTR    W2BSTR 
     A2CT         OLE2CA         T2CA          W2CA 
     A2CW        OLE2CT         T2COLE    W2COLE 
     A2OLE       OLE2CW       T2CW         W2CT 
     A2T            OLE2T            T2OLE        W2OLE 
     A2W           OLE2W          T2W             W2T

    A :ANSI 字符串,也就是 MBCS。 
    W、OLE 宽字符串,也就是 UNICODE。 
    T 中间类型T。如果定义了 _UNICODE,则T表示W;如果定义了 _MBCS,则T表示A 
    C const 的缩写

利用这些宏,可以快速的进行各种字符间的转换。使用前必须包含头文件,并且申明USER_CONVERSION;使用 ATL 转换宏,由于不用释放临时空间,所以使用起来非常方便。但是考虑到栈空间的尺寸(VC 默认2M),使用时要注意几点:

    1、只适合于进行短字符串的转换; 
    2、不要试图在一个次数比较多的循环体内进行转换; 
    3、不要试图对字符型文件内容进行转换,因为文件尺寸一般情况下是比较大的; 
    4、对情况 2 和 3,要使用 MultiByteToWideChar() 和 WideCharToMultiByte();

void Func1(LPSTR lpStr);

void Func2(LPWSTR lpwStr);

TCHAR   name[256];

TCHAR*   pName = new  TCHAR[256];

Func1(name); // Func1(pName);

Func2(name); // Func2(pName);

注意在VS2005中上面用红色标记的代码已经不成立。

VS2005中CString已经改为宽字符型,一些转换如下:

char name[10];
 TCHAR sex[5] ;
 char *p = name;
 TCHAR *pw = sex;

 LPSTR lpstr = name;
 LPCSTR lpcstr = name;
 lpcstr = lpstr;
 
 lpstr = p;
 p = (char*)sex;
 pw = (WCHAR*)name;
 LPWSTR lpwstr = (LPWSTR)lpstr;
 lpwstr = (LPWSTR)lpcstr;
 LPCWSTR lpcwstr = (LPCWSTR)lpstr;
 lpcwstr = (LPCWSTR)name;

 CString str(lpstr);
 CString str1(lpcstr);
 CString str2(lpwstr);
 CString str3(lpcwstr);
 CString str4(name);
 CString str5(sex);

 lpwstr = (LPWSTR)(LPCWSTR)str;
 lpstr = (LPSTR)(LPCWSTR)str;
 lpcstr = (LPCSTR)(LPCWSTR)str;

 p = (char*)str.GetBuffer();
 pw = str.GetBuffer();

可以看出转换更加简单了,基本上可以直接转换,A2W等宏基本上不需要啦。



绕过App某加密企业版加固Frida检测 可以发现dlsym函数加载了两次pthread_create,可以认为这两个进程(或某一个进程)是和Frida的检测有关的,于是为了绕过检测,我们可以让它加载一个虚假的pthread_create函数,得到一个空结果绕过检测。成功绕过了libnllvm1717052779924.so的检测,又到了libface_nllvm.so的检测,使用同样的方法去绕过libface_nllvm.so的检测,代码我这里就不上了,大家可以自己修改以下。dlsym()函数的作用是在已经加载的动态链接库中查找指定符号的地址。 阅读详情

相关推荐

【冷冻电镜】RELION5.0使用教程总结

对于您自己的数据,您可能希望使用各种倾斜系列对齐方法,然后比较每种方法生成的断层扫描图像的质量(参见下一步)。通过检查 CtfFind job 的 tilt_series 目录中的star文件来检查几个倾斜系列的散焦值。GitHub上也有人反应这个问题,目前我的解决方案是下载了较低版本的CTFFIND的,降级到4.1.10可以成功运行。此外,logfile.pdf 文件包含所有显微照片的有用参数图,例如散焦、像散、估计分辨率等,以及整个数据集中这些值的直方图。的目录,以及指向此目录的符号链接。

进阶中的程序员吃吃的博客 4235

LPCWSTR

LPCWST是一个指向unicode编码字符串的32位指针,所指向字符串是wch

ningjingsun的专栏 6068

电路抗干扰原理及应用(1)

电路抗干扰原理——介绍干扰源、干扰途径、抗干扰技术(接地技术)

qq_34758408的博客 2061

常见类型转换

一.CString与LPCWSTR     两者的不同:LPCWSTR 是Unicode字符串指针,初始化时串有多大,申请空间就有多大,以后存贮若超过则出现无法预料的结果,这是它与CString的不同之处。而CString是一个串类,内存空间类会自动管理。    CString转换成LPCWSTR    方法一:CString strFileName;               

105694832的专栏 3298

手把手教你用STM32的SPI驱动MCP2517FD实现CAN FD通信(附完整代码)

本文详细介绍了如何使用STM32通过SPI驱动MCP2517FD实现CAN FD通信,涵盖硬件连接、SPI驱动编写、寄存器配置及数据收发实战。提供完整代码示例和常见问题排查指南,帮助开发者快速构建高可靠性的CAN FD通信系统,适用于汽车电子和工业控制等领域。

weixin_30607029的博客 675

WS2812和homeassistant握手

本文学习了WS2812和homeassistant握手,后期会分享更多有趣物联网的操作从而实现对外部世界进行感知,充分认识这个有机与无机的环境,科学地合理地进行创作和发挥效益,然后为人类社会发展贡献一点微薄之力。...

vor234的博客 811

LPCSTR和LPCWSTR分别是什么

LPCWSTR是一个指向常量宽字符的指针,即指向一个以null结尾的Unicode字符串的指针。“LP"代表"Long Pointer”,“C"代表"Constant”,“WSTR"代表"Wide String”。LPCSTR是一个指向常量字符的指针,即指向一个以null结尾的ASCII字符串的指针。“LP"代表"Long Pointer”,“C"代表"Constant”,“STR"代表"String”。LPCSTR和LPCWSTR都是Windows平台下的数据类型,用于表示指向字符串的指针。

巴拉巴拉变不出 1749

微信小程序 - 实现仿小红书轮播图组件功能,类似小红书笔记页面图片展示播放效果,微信小程序仿小红书幻灯片轮播支持视频播放、图片预览,自动适应图片或视频大小可左右滑动切换(小程序精美轮播图,丝滑切换)

微信小程序,轮播图组件,微信小程序仿小红书轮播图,小红书轮播图仿造,微信小程序轮播图,微信小程序幻灯片,微信小程序高仿小红书轮播图实现,小程序实现类似小红书一样的轮播图组件,轮播图插件,精致轮播图,精美丝滑流畅切换的轮播图,轮播图组件,小红薯轮播图,关于小红书的小程序不同数量的轮播图,展示不一样的轮播指示点的实现,微信小程序仿小红书图片轮播,开发微信小程序模仿小红书,高仿小红书Banner的指示器,小红书小程序笔记详情轮播图指示点的随图片数量的变化动态变化,微信小程序swiper轮播图,js轮播图,html

✅ 精选推荐文章 6930

LPCTSTR LPCWSTR LPCSTR

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

u014311306的博客 1153

Supreme小程序自动化抢购终端——源码架构与执行流程全解析

本系统是一套基于开发的桌面端小程序自动化抢购终端。把只有开发者能跑的脚本,包装成普通用户也能操作的桌面工具。参数自动捕获 → 商品多关键词检索 → sku/尺码/库存映射 → 多商品任务队列 → 定时/立即抢购 → 订单创建 → 支付参数拉取 → 本地服务生成支付链接 → 手机微信扫码付款这套 Supreme 抢购终端,表面上看是一个"下单工具"。但从工程角度审视,它已经具备了一个小型桌面自动化系统GUI 层:CustomTkinter 现代化界面,线程安全业务层:多商品队列、定时调度、任务编排。

猫敷雪 203

图像处理入门007:图像处理中的数学基础:线性代数与卷积

一种:把 OpenCV 当黑盒,调用,效果不对就乱调参数;另一种:理解每个像素是怎么被周围邻域"加权平均"的,理解核翻转、边界填充、stride 的含义。前者能干活,后者能解难题。一旦遇到自定义核(比如 ISP 上的锐化)、深度学习反向传播、医学图像重建,你就必须把卷积、相关、矩阵乘法这些基本功捡回来。线性代数三件套:向量点积、矩阵乘法、线性变换;2D 卷积的数学定义:核翻转、滑动窗口、边界填充。并手写一个,验证它与和的结果完全一致(误差 < 1e-9)。f∗gn∑m−∞∞f。

专注:太空算力、AI infra、异构调度、大模型成本工程 387

[c++] LPWSTR、LPCSTR、LPCWSTR浅析

LPCSTR是Win32和VC++所使用的一种字符串数据类型。LPCSTR被定义成是一个指向以'\0'结尾的常量字符的指针。 LPWSTR是wchar_t字符串 LPCWSTR是一个指向unicode编码字符串的32位指针,所指向字符串是wchar型,而不是char型。 LPSTR和LPWSTR是Win32和VC++所使用的一种字符串数据类型。LPSTR被定义成是一个指向以NULL(‘\0...

初阳-.-#的博客 4万+

AI摄影师:自动构图与修图算法设计

AI摄影师:自动构图与修图算法设计​ ,人工智能,计算机视觉,大模型,AI,AI 摄影师的核心能力体现在两方面:自动构图(通过算法优化画面元素布局)与智能修图(自动调整光影、色彩、细节)。例如,手机摄影中的 “AI 构图建议” 功能可实时框选最佳拍摄区域,修图软件中的 “一键增强” 能在 0.1 秒内完成专业级调色,这些都依赖于计算机视觉与深度学习的深度融合。

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

vc++类型转换

一.VC常用数据类型列表 二.常用数据类型转化 2.1数学类型变量与字符串相互转换 2.2 CString及string,char *与其他数据类型的转换和操作 ●CString,string,char*的综合比较 ●数学类型与CString相互转化 ●CString与char*相互转换举例 ●CString 与 BSTR 型转换 ●VARIANT

jingtianzi的专栏 708

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SAP B1中文培訓教材_SDK

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

VC++常用数据类型及其操作详解

VC++常用数据类型及其操作详解(未完待续) -------西安邮电学院计算机系                      徐兆元(FLxyzsby@163.com FLxyzsby@yahoo.com.cn) 2004/08/03 目录 一.              VC常用数据类型列表 二.              常用数据类型转化 2.1数学类型变量与字符串相互转换 2.2 CStri

FLxyzsby的专栏 1万+

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

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

VC++类型转换详解[转]

一.VC常用数据类型列表 二.常用数据类型转化 2.1数学类型变量与字符串相互转换 2.2 CString及string,char *与其他数据类型的转换和操作 ●CString,string,char*的综合比较 ●数学类型与CString相互转化 ●CString与char*相互转换举例 ●CString 与 BSTR 型转换 ●VARIANT 型转化成 CS...

diegui9005的博客 201

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

VC常用数据类型使用转换详解

<br />CString ,BSTR ,LPCTSTR之间关系和区别<br />CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常量的TCHAR指针。<br /> <br />CString 是一个完全独立的类,动态的TCHAR数组,封装了 + 等操作符和字符串操作方法。<br />typedef OLECHAR FAR* BSTR;<br />typedef const char * LPCTSTR;<br /> <br />vc

zhukanjie的专栏 386

CString 与其他类型的转换

<br />一.              VC常用数据类型列表<br /> <br />二.              常用数据类型转化<br /> <br />2.1数学类型变量与字符串相互转换<br />2.2CString及string,char *与其他数据类型的转换和操作<br />●CString,string,char*的综合比较<br />●数学类型与CString相互转化<br />●CString与char*相互转换举例<br />●CString 与 BSTR 型转换<br />●V

jcjssys的专栏 884

VC常用数据类型列表

 TypeDefault SizeDescription    基础类型 全是小写 说明:这些基础数据类型对于MFC还是API都是被支持的booleanunsigned 8 bit ,取值TRUE/FALSE

Wendysuly的专栏 660

VC++常用数据类型

 一.              VC常用数据类型列表二.              常用数据类型转化2.1数学类型变量与字符串相互转换2.2 CString及string,char *与其他数据类型的转换和操作●CString,string,char*的综合比较●数学类型与CString相互转化●CString与char*相互转换举例●CStrin

尹成的技术博客 1万+

VC++常用数据类型及其操作详解 [

一.VC常用数据类型列表 二.常用数据类型转化 2.1数学类型变量与字符串相互转换 2.2 CString及string,char *与其他数据类型的转换和操作 ●CString,string,char*的综合比较 ●数学类型与CString相互转化 ●CString与char*相互转换举例 ●CString 与 BSTR 型转换 ●VARIANT 型转化成 CString 型

lyshiba的专栏 4703

类型

一. VC常用数据类型列表二. 常用数据类型转化2.1数学类型变量与字符串相互转换2.2 CString及string,char *与其他数据类型的转换和操作●CString,string,char*的综合比较 ●数学类型与CString相互转化●CString与char*相互转换举例 ●CString 与 BSTR 型转换●VARIANT 型转化成 CString 型 2.3 BSTR、_bstr_t与CComBSTR2.4 VARIANT 、_vari

running1221的专栏 659
上一篇: 利用Hough变换实现直线检测的代码
下一篇: 浅谈C中的malloc和free
泡泡徐
博客等级 码龄15年 24粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值