CString装换成const char*的问题

本文详细介绍了CString装换成const char*的两种情况:对于ANSI字符串,直接使用GetBuffer函数;对于UNICODE字符串,则需先转换为LPCTSTR再使用W2A宏。并提供了实例代码帮助理解。

CString装换成const char*有两种情况:

1.字符串为ANSI字符串:

在这种情况下,只需用LPCWSTR GetBuffer(intnMinBufLength)函数将CString类型转换成LPCTSTR类型,ANSI情况下,LPCTSTR 就是 const char*,例如:


CString cstr;
const char* ch = cstr.GetBuffer(sizeof(cstr));
2.字符串为UNICODE字符串:

在这种情况下,在将CString类型转换成LPCTSTR类型后,还需使用ATL的转换宏W2A将LPCTSTR类型装换成const char*类型。注意转换前加上USES_CONVERSION以避免出现编译错误。例如:


CString cstr;
USES_CONVERSION;
const char* ch = W2A(cstr.GetBuffer(sizeof(cstr)));


这只是本人在写程序过程中遇到的问题及解决方法,如果有什么错误或其它更好的方法还望大家多多指教。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值