小弟初学VC,想用TextOut输出中文字符.现有一数组存放的是十进制的机内码,一共12个机内码,按照汉字占两个字节,可输出6个汉字,
我一次取的是十进制的两个机内码,将两个机内码转换成一个十六进制的机内码,但输出的却是六个乱码.恳请各位大哥指导!
程序如何写?谢谢!

解决方案 »

  1.   

    不能这样取,每个汉字并不都是占两个字节,所以应调用相应的API来判断是否为完整的一个汉字为宜
      

  2.   


    #define MULTI_TO_WIDE( x,y )  MultiByteToWideChar( CP_ACP,MB_PRECOMPOSED, y,-1,x,_MAX_PATH);
    ..............char szDir[_MAX_PATH];
    WCHAR wszDir[_MAX_PATH];
     
    if(_getcwd( szDir, _MAX_PATH ) == NULL)
      {
      return NULL;
      } // end if// convert to wide charactersMULTI_TO_WIDE(wszDir, szDir);//这是一个转成宽字符的用法,_getcwd是得到当前工作目录,可以不看,只看字符的转换就行
    // 输出的时候 Textout()遇到字符串,加以下L,如“abc”改成 L"abc"
      

  3.   

    一共12个机内码,按照汉字占两个字节,可输出6个汉字, 
    ___________________________________________
    应该不是TEXTOUT的问题,你确定是转换成了6个汉字吗?