如题

解决方案 »

  1.   

    mbstowcs
    我用过了,解决不了
    to: steedhorse(晨星)    int i;
        char    *pmbnull  = NULL;
        char    *pmbhello = (char *)malloc( MB_CUR_MAX );
        wchar_t *pwchello = L"Hi士大夫";
        wchar_t *pwc      = (wchar_t *)malloc( sizeof( wchar_t ));    printf( "Convert to multibyte string:\n" );
        i = wcstombs( pmbhello, pwchello,MB_CUR_MAX );
    **************************************************************
    没得到想要的结果 
      

  2.   

    wchar_t 和 WCHAR 
    也不是一回事
      

  3.   

    char    *pmbhello = (char *)malloc( 32 );
    wchar_t *pwchello = L"Hi士大夫";
    int i = WideCharToMultiByte(CP_ACP, 0, pwchello, -1, pmbhello, 32, NULL, NULL);不过使用“L”直接定义汉字字符串并不跨编译器,似乎也就VC可以。
      

  4.   

    帮你改一下:
        ......
        printf( "Convert to multibyte string:\n" );/**/  int l = wcslen( pmbhello ) + 1;  /* 加入这句 */    i = wcstombs( pmbhello, pwchello, l ); /* 修改长度 */
      

  5.   


    WCHAR[] to char[]
    int cch = WideCharToMultiByte(CP_ACP, 0, L"sdf大师傅",10, astderrbuf, sizeof(astderrbuf), 0, 0);char[] to WCHAR[]
    int i=MultiByteToWideChar(CP_ACP, 0, astderrbuf, -1, strTemp, sizeof(strTemp));
    大家以后可能用的着