VC++2005中CString到std::string的转换

本文介绍了一种在使用Unicode编码时,将MFC中的CString类型转换为标准C++库中的std::string类型的方法。通过使用wcstombs_s函数,文章详细展示了如何进行这种类型转换,并提供了完整的代码示例。

因为前些日子一个小程序的需要,而我自己又不是很熟悉VC编程,倒是对stl了解了一点,因此在利用MFC创建了界面之后就有一个数据转换的问题,经过网上搜索、查看MSDN、加上自己实践,终于发现CString到std::string的转换的方法,故立此存照,以备后查。

因为我用的是Unicode编码,所以采用的是如下方法: 

CString m_Serial;    // 定义的CString类型的字符串,也可以从MFC创建的变量中传递进来
size_t i;  // 转换后的串中字符的个数
size_t buff = m_Serial.GetLength() * 2;  // 因为是Unicode编码方式,所以每个字的存储空间是双字节
char *= new char[buff];   // 动态分配转换后的所需存储空间
wcstombs_s( &i, p, (size_t)buff, m_Serial, (size_t)buff );  // 调用wcstombs_s实现转换,注:用wcstombs函数会发生C4996警告。
std::string out = p;  // 将p赋值给std::string类型的变量,实现到std::string的转换
if (p)  // 清理p的内存空间
    free(p);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值