前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CString转换成const char*的一种有效方法

CString转换成const char*的一种有效方法

作者头像
ccf19881030
发布2019-05-26 15:34:23
2.1K0
发布2019-05-26 15:34:23
举报
文章被收录于专栏:ccf19881030的博客ccf19881030的博客

在Visual Studio 200X下,CString直接转换成const char* 有点困难,下面是自己用的一种可行方案:

//得到目录路径

CString mPath=dlg.GetPathName();

//将目录路径转换成绝对路径以便cvLoadImage调用

int m=mPath.GetLength(); for(int index=0;index<m;index++) { if(mPath.GetAt(index)=='\\') { mPath.Insert(index,'\\'); index++; }

}

//将CString转换成LPCTSTR

LPCTSTR p=mPath.GetBuffer();

/*

将LPCTSTR转换为const char *,因为Unicode的问题,LPCTSTR1、在非UNICODE环境下为 const char * 2、在UNICODE环境下为 const unsigned short *

在情况2时需要借助API函数WideCharToMultiByte

代码语言:javascript
复制
代码语言:javascript
复制
int WideCharToMultiByte(
  UINT CodePage,            // code page
  DWORD dwFlags,            // performance and mapping flags
  LPCWSTR lpWideCharStr,    // wide-character string
  int cchWideChar,          // number of chars in string
  LPSTR lpMultiByteStr,     // buffer for new string
  int cbMultiByte,          // size of buffer
  LPCSTR lpDefaultChar,     // default for unmappable chars
  LPBOOL lpUsedDefaultChar  // set when default char used
);

*/

DWORD dwMinSize; dwMinSize=WideCharToMultiByte(CP_ACP,NULL,p,-1,NULL,0,NULL,FALSE); char * pp=new char[dwMinSize]; WideCharToMultiByte(CP_OEMCP,NULL,p,-1,pp,dwMinSize,NULL,FALSE); //读取图像 IplImage* ip1=cvLoadImage(pp,-1);

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2012年04月04日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档