CString与string转换
来源:互联网 发布:mac 电脑 foxmail设置 编辑:程序博客网 时间:2024/06/09 22:49
利用MFC进行打开文件时,需要将文件路径类型为CString转换为从cv::string类型,然后直接就可以有imread读入图片,网上提供的主要有以下几种转换方式:
1、
CString cstr;string str((LPCTSTR)cstr);
2、
CString cstr;sring str(cstr.GetBuffer());
3、
CString cstr;USES_CONVERSION;string str(W2A(cstr));
经过试验编程部分如下:
CString strPathName;CFileDialog ccFileDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT,_T("Image files(*.png; *.jpg;*.bmp)|*.png;*.jpg;*.bmp|All files(*.*)|*.*||"), NULL);if (ccFileDlg.DoModal() == IDOK)strPathName = ccFileDlg.GetPathName(); string name;name=(LPCTSTR(strPathName));//方法1//name = strPathName.GetBuffer(0); //方法2//USES_CONVERSION;//方法3//string name(W2A(strPathName));
结果发现,方法1和2出现如下问题,
本文利用的VS2013+OPENCV3.0,最后方法3可以正确运行;
理由是因为CString中是WCHAR,string里是char,类型不匹配;CString实际是CStringT, 也就是模板类, 它在UNICODE环境下, 实际是CStringW, 而在多字符集下是CStringA,而std::string就是多字符集的.具体见原帖
0 0
- CString与string转换
- cstring与string的转换
- CString与std::string转换
- CString与string相互转换
- CString与string,CString 与int 互相转换
- char* string CString char[] 操作与转换
- string cstring char* 比较与转换
- CString与std::string相互转换
- CString与string的相互转换
- CString与string之间的转换
- CString与char * ,string 的相互转换
- CString与string之间的转换
- [MFC] CString与string间的转换
- CString与string,char*的相互转换
- CString与string之间的转换
- CString与string之间的转换
- MFC中CString与string的转换
- CString与char * ,string的互相转换
- Xcode_7 iOS_9 集合视图_CollectionViewController Objective-C (9)
- Android Service详解
- MappingJackson2JsonView 与 MappingJackson2HttpMessageConverter在返回json时的区别
- apache2.4报 (OS 64)指定的网络名不再可用 ,解决方案
- Eclipse validation error with fontawesome-webfont.svg
- CString与string转换
- 63. Unique Paths II
- Android 使用三方库android-gif-drawable 加载Gif图片
- 数据的随机查询在不同数据库中的不同语法
- nginx上传文件413错误解决办法
- FMDB数据库事务
- 【Linux c】代码规范
- Android 编程下 Touch 事件的分发和消费机制
- MyBatis关联查询,表字段相同,resultMap映射问题的解决办法