博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vs2010 unicode 下类型转换CString,char*,char,string,int,double
阅读量:5097 次
发布时间:2019-06-13

本文共 1667 字,大约阅读时间需要 5 分钟。

Unicode下 string 转 CString

[cpp] 
 
  1. string msg = "";  
  2. CString cs;  
  3. cs.Format(_T("%s"),CStringW(msg.c_str())); //CStringW是为了防止乱码  

Unicode下CString转换为char *

[cpp] 
 
  1. //方法一:使用API:WideCharToMultiByte进行转换  
  2.               CString str = _T("D:\\校内项目\\QQ.bmp");  
  3.             //注意:以下n和len的值大小不同,n是按字符计算的,len是按字节计算的  
  4.               int n = str.GetLength();     // n = 14, len = 18  
  5.              //获取宽字节字符的大小,大小是按字节计算的  
  6.              int len = WideCharToMultiByte(CP_ACP,0,str,str.GetLength(),NULL,0,NULL,NULL);  
  7.              //为多字节字符数组申请空间,数组大小为按字节计算的宽字节字节大小  
  8.             char * pFileName = new char[len+1];   //以字节为单位  
  9.             //宽字节编码转换成多字节编码  
  10.             WideCharToMultiByte(CP_ACP,0,str,str.GetLength(),pFileName,len,NULL,NULL);  
  11.              pFileName[len+1] = '\0';   //多字节字符以'\0'结束  
  12. //方法二:使用函数:T2A、W2A  
  13.              CString str = _T("D:\\校内项目\\QQ.bmp");  
  14.               //声明标识符  
  15.              USES_CONVERSION;  
  16.              //调用函数,T2A和W2A均支持ATL和MFC中的字符转换  
  17.              char * pFileName = T2A(str);    
  18.             //char * pFileName = W2A(str); //也可实现转换  
  19.             注意:有时候可能还需要添加引用#include   <afxpriv.h>  

Unicode下char *转换为CString

[cpp] 
 
  1. char *pch = "ddd";    
  2. CString cs;  
  3. cs.Format(_T("%s"),CStringW(pch));  

Unicode下 CString类型的转换成int 

 

 

[cpp] 
 
  1. CString aaa = "16" ;      
  2. int int_chage = atoi((lpcstr)aaa) ;     

unicode 下 string转换char*

 

[cpp] 
 
  1. void CegDlg::strToChar(string str,char* &ch)  //要转换的字符串str  接受*ch        
  2. {  
  3.     CString cs;  
  4.     cs.Format(_T("%s"),CStringW(str.c_str()));//先转换成cstring    
  5.     int len = WideCharToMultiByte(CP_ACP,0,cs,cs.GetLength(),NULL,0,NULL,NULL);  
  6.     char * pFileName = new char[len];    
  7.     memset(pFileName,0,sizeof(pFileName));  
  8.     WideCharToMultiByte(CP_ACP,0,cs,cs.GetLength(),pFileName,len,NULL,NULL);  
  9.     pFileName[len] = '\0';    
  10.     ch = pFileName;  
  11. }  

在Unicode下的CString to double 

[html] 
 
  1. CSting sTemp("123.567");  
  2. double dTemp = _wtof(sTemp.GetString());  

 

在Unicode下的char* 转 int

 

 

[html] 
 
    1. char *ch ="32";  
    2. int  i  =  atoi(ch);  

转载于:https://www.cnblogs.com/For-her/p/3658005.html

你可能感兴趣的文章
软件工程 speedsnail 第二次冲刺4
查看>>
[Python数据挖掘]第4章、数据预处理
查看>>
在Intellij IDEA中使用Debug
查看>>
洛谷P3113 [USACO14DEC]马拉松赛跑Marathon_Gold 线段树维护区间最大值 模板
查看>>
如何区分el表达试与jquery
查看>>
string 线程安全
查看>>
css三类选择器 用法 引用
查看>>
android studio jni调用入门
查看>>
Python第一部分--Python简介+第一个程序+Python2和Python3介绍 001-016
查看>>
CSS Hack
查看>>
Django REST framework(官方说明文档翻译)(1快速开始 )
查看>>
JavaScript字符转Unicode,顺便说句:GitHub的Oh no页面很亮
查看>>
MSSQL 手工入侵网站方法
查看>>
memcache 加载(对象)所遇到的问题。资源
查看>>
linux命令df中df -h和df -i
查看>>
201771010130 王志成《面向对象程序设计(java)》第十二周学习总结
查看>>
百词斩
查看>>
Unity3D 开发问题记录笔记
查看>>
PHPMailer不能发送邮件
查看>>
Linux 下的图形库介绍
查看>>