如何连接两个char?

albert_skynet 2010-06-07 04:45:44

char str[80],*number="27865412";
strcpy_s (str,"number: ");
strcat_s (str,number);
puts (str);


::MessageBoxW (this->m_hWnd ,LPCWSTR(str),_T("文件夹"),MB_OK);


为什么MessageBox 显示的是乱码?

编译环境:vc++ 2005


...全文
442 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangli820 2010-06-07
  • 打赏
  • 举报
回复
MessageBoxW 要求宽字符
你前面定义的字符是 char 属于多字节字符
二者之间不能通过强制转换来进行
你可以用 CString str
和 CStringA stra ;
str = stra 来进行二者之间的转换
finder_zhang 2010-06-07
  • 打赏
  • 举报
回复
用DLGBASE的测了一下.

char str[80],*number="27865412";
strcpy (str,"number: ");
strcat (str,number);
//puts (str);

unsigned short wCh[200];
int iLen = strlen(str);
MultiByteToWideChar(CP_ACP,0,str,iLen,wCh,iLen);
wCh[iLen] = 0;
::MessageBoxW (this->m_hWnd ,wCh,L"文件夹",MB_OK);

这样可以转过去显示的.
Eleven 2010-06-07
  • 打赏
  • 举报
回复
::MessageBoxW (this->m_hWnd ,LPCWSTR(str),_T("文件夹"),MB_OK);
-->
::MessageBox (this->m_hWnd ,str,"文件夹",MB_OK);
albert_skynet 2010-06-07
  • 打赏
  • 举报
回复
Unicode
finder_zhang 2010-06-07
  • 打赏
  • 举报
回复
如果你一定要用 ::MessageBoxW 的话
先搞个 unsigned short wCh[200] 出来
然后 MultiByteToWideChar 转成 一个 真正是 UNICODE 的 wCh ,再传给 MessageBoxW
lanneret1234 2010-06-07
  • 打赏
  • 举报
回复
MessageBoxW 需要的是Unicode字符 你给它的是ANSI字符
finder_zhang 2010-06-07
  • 打赏
  • 举报
回复
::MessageBoxA (this->m_hWnd ,str,"文件夹",MB_OK);

这样试试,把一个ASCII的字符字符转成UNICODE不行的.
soswaidao 2010-06-07
  • 打赏
  • 举报
回复
字符编码问题,ANSI还是Unicode?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧