CString 怎么转化成char[]型的 CString 怎么转化成char[]型的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CString::GetBuffer(CString::GetLength()); char * = CString::GetBuffer(0);char [0] = char * 多字节就CString::GetBuffer(0)unicode的话再把CString::GetBuffer(0)得到的宽字节转成char []\WideCharToMultiByte等转 #include <atlbase.h>USES_CONVERSION;char* buf = T2A(...); USES_CONVERSION;strcpy_s(char *buff,strlen(buff),T2A(CString str)); strncpy_s(c.chName, _countof(c.chName), (LPCTSTR)strText, strlen(c.chName)); CString str;TCHAR tempchar[200];lstrcpy(tempchar,str); 还是用GetBuffer比较简单吧不过使用了GetBuffer后,要调用ReleaseBuffer 释放一下;CString TagName("demo");char *tmp = TagName.GetBuffer( 0 );TagName.ReleaseBuffer(); 提示说:cannot convert from 'wchar_t *' to 'char *‘是不是Unicode下GetBuffer不能使? str.GetBuffer提示有错误啊?cannot convert from 'wchar_t *' to 'char *‘ 解决了。用的这种方法:CString strSendBuf; char SendBuf[100]; TCHAR tempchar[200]; lstrcpy(tempchar,strSendBuf); int nLength = WideCharToMultiByte(CP_ACP,0,tempchar,-1,NULL,0,NULL,NULL); WideCharToMultiByte(CP_ACP,0,tempchar,-1,SendBuf,nLength,NULL,NULL); 是不是超级笨的方法。但是我现在对那个WCHAR,TCHAR,UNICODE,ASCAII,一点概念都没有。。谁有这方面的书,推荐看看 你的方法不笨unicode就是这样搞的WideCharToMultiByte这个函数可以将宽字符转换为多字节字符WCHAR THCAR 是宽字符char是窄字符Windows程序设计 和 Windows核心编程最开始的部分对Unicode讲解的很清楚你可以下载一本电子书看一下一个小时吧可以把这块搞的很清楚核心编程中也讲了WideCharToMultiByte这个函数的使用我经常要写wince下的程序wince下就支持unicodeunicode是16位,可以表示65536个字符这样就能表示包括中文,英文,韩文等等如果只是ASCII码等8位的能表示的字符太少了。... ... wchar_T是typedef unsigned short wchar_t; -----------------------------------看看我整理摘录的http://blog.csdn.net/shihaojie1219/archive/2010/07/29/5775041.aspxhttp://blog.csdn.net/shihaojie1219/archive/2010/07/28/5770692.aspx 有关像素分辨率的问题 如何打开一个文件 VC程序启动顺序? 如何得到当前使用键盘的设备描述? 程序员的笔记本要啥样? 请教:开发天敏sdk2000视频卡遇到的问题 ~~~~~~~~~~兄弟姐妹们,别人刚给我给我介绍个女朋友,准备周末出去第一次见面,这大冷天的出去喝点什么好啊,大家教教我吧~~~~~~~~~~~ 请问怎样在VC中处理MAKEFILE文件? 大家好:设置好的主框架的的标题,在打印预览后,名称被改了?如果设置? 高分请教菜鸟问题(图象方面)。急!急!急!!! 50分求助:简单问题,关于获取控件大小的问题 关于RGB图像转换为灰度图像的问题
char [0] = char *
unicode的话再把CString::GetBuffer(0)得到的宽字节转成char []
\WideCharToMultiByte等转
USES_CONVERSION;
char* buf = T2A(...);
strcpy_s(char *buff,strlen(buff),T2A(CString str));
TCHAR tempchar[200];lstrcpy(tempchar,str);
char *tmp = TagName.GetBuffer( 0 );
TagName.ReleaseBuffer();
是不是Unicode下GetBuffer不能使?
cannot convert from 'wchar_t *' to 'char *‘
CString strSendBuf;
char SendBuf[100];
TCHAR tempchar[200];
lstrcpy(tempchar,strSendBuf);
int nLength = WideCharToMultiByte(CP_ACP,0,tempchar,-1,NULL,0,NULL,NULL);
WideCharToMultiByte(CP_ACP,0,tempchar,-1,SendBuf,nLength,NULL,NULL);
是不是超级笨的方法。
但是我现在对那个WCHAR,TCHAR,UNICODE,ASCAII,一点概念都没有。。
谁有这方面的书,推荐看看
unicode就是这样搞的
WideCharToMultiByte
这个函数可以将宽字符转换为多字节字符
WCHAR THCAR 是宽字符
char是窄字符
Windows程序设计 和 Windows核心编程最开始的部分
对Unicode讲解的很清楚
你可以下载一本电子书看一下
一个小时吧
可以把这块搞的很清楚
核心编程中也讲了WideCharToMultiByte这个函数的使用
我经常要写wince下的程序
wince下就支持unicode
unicode是16位,可以表示65536个字符
这样就能表示包括中文,英文,韩文等等
如果只是ASCII码等8位的能表示的字符太少了。
... ...
是
typedef unsigned short wchar_t;
看看我整理摘录的
http://blog.csdn.net/shihaojie1219/archive/2010/07/29/5775041.aspx
http://blog.csdn.net/shihaojie1219/archive/2010/07/28/5770692.aspx