实现CString到std::string的转换

来源:互联网 发布:移动手机信号测试软件 编辑:程序博客网 时间:2024/05/23 10:03
第一种:在新建MFC工程中如果选择了Unicode编码,用如下方法转换:
下面一段程序可以实现CString到std::string的转换,主要用于MFC获取图像文件路径到OpenCV2.3读取图像的路径格式不同之间的转换
size_t i;  // 转换后的串中字符的个数size_t buff = image.GetLength() * 2;  // 因为是Unicode编码方式,所以每个字的存储空间是双字节char *p = new char[buff];   // 动态分配转换后的所需存储空间wcstombs_s( &i, p, (size_t)buff, image, (size_t)buff );  // 调用wcstombs_s实现转换,注:用wcstombs函数会发生C4996警告。std::string out = p;  // 将p赋值给std::string类型的变量,实现到std::string的转换
第二种:在新建MFC工程中如果不选择Unicode编码,用如下方法转换:
CString image=dlg.GetPathName();string p(image.GetBuffer());


 

原创粉丝点击