MFC中CString的各种转换

在MFC编程中,MFC的标准字符串为CString,但是在使用函数时,我们通常要将CString转换成其他类型的字符串进行

使用。

首先介绍常用的转换类型:

1.char* 这个是C里面最基础的字符串类型

2.LPSTR  L代表Long,P代表指针,STR代表字符串,就等于char*

3.LPCSTR  等于const char*

4.LPCTSTR T代表宽字节,是UNICODE版本的字符串。

能够将CString转换为上述四种基础类型后,那么你就能将CSting转换为String,QString等任意类型。

首先介绍万能转化函数GetBuffer(int)函数,原文介绍如下:

Returns a pointer to the internal character buffer for the CString object. The returned LPTSTR is not const and thus allows direct modification of CString contents.

If you use the pointer returned by GetBuffer to change the string contents, you must call ReleaseBuffer before using any other CString member functions.

使用GetBuffer(int)后返回一个指向CString内部字符串的LPTSTR指针并锁定CString,通过这个指针你能够修改CString的内容,当int小于Cstring本来大小时,忽略该参数,返回大小为原字符串大小的LPTSTR指针,当大于Cstring本来大小时,会reallocate

一块比较大的空间出来,使用GetBuffer后应该使用ReleaseBuffer()解出锁定,这时才能自由使用CString变换其大小。

所以第一步将CString通过GetBuffer转换成LPTSTR,然后直接用强制转换符转换为其他的类型。另外LPCTSTR和CString是能够直接转换的不用其他函数。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值