xmlt.net
当前位置:首页 >> vC++2010中Const ChAr* 不能初始化Const wChAr_t*... >>

vC++2010中Const ChAr* 不能初始化Const wChAr_t*...

这是宽字节和非UNICODE多字节方式的转换,要争取显示,不能使用强制转换。 两种方式,对变量到w变量,使用: WideCharToMultiByte、MultiByteToWideChar相互转换 对常量到变量,可以简单的使用: CString str = _T("hello world");

_T修饰 表示 wchar_t unsigned short (16-bit) 而 char 是8位的 去掉_T看看 或 工程类型的编码试试

wchar_t temp[155]; MultiByteToWideChar(CP_ACP, NULL, name, 155, temp, 155); TRACE(temp);

wchar_t宽字符和char是有区别的,char是1个字节,而宽字符wchar是2个字节,类型不同,所以传递参数失败!可以用wchar代替char解决这个问题!

因为用到了宽字符,所以char要改成wchar,字符串操作函数也要相应改成带ws前缀的版本

你的代码中temp变量中有 a,b,m...

buffer = (unsigned char *)malloc(bufsize); strcpy((char *)buffer, strExecuteSQL.GetBuffer(strExecuteSQL.GetLength())); ===> memcpy((char *)buffer, (char*)strExecuteSQL.GetBuffer(strExecuteSQL.GetLength()),strExecuteSQL.GetLengt...

哪一条语句报的错?通常解决的办法两个, 一个是在函数调用的时候把参数进行强制转换 另外一个是把那个变量的类型就不要申明为LPCTSTR(就是const char *),而是声明为LPTSTR(就是char*)

CString::GetBuffer()返回的类型是LPTSTR。 我们查看LPTSTR的定义: #ifdef UNICODE // r_winnt typedef LPWSTR PTSTR, LPTSTR; #else /* UNICODE */ // r_winnt typedef LPSTR PTSTR, LPTSTR; #endif /* UNICODE */ // r_winnt 在看LPWSTR和LPS...

网站首页 | 网站地图
All rights reserved Powered by www.xmlt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com