char cha[]="新年快乐";
wchar_t wcha[];
mbstowcs(wch,cha,100);
wprintf(wch);
 和:
wchar_t wch[]=L" 新年快乐";
wprintf(wch);
它们输出都一样,但意义有何不同?
把它用在SAPI中:
pVoice->Speak(wch,0,NULL);
函数执行用前者就不能正常,而后者可以。
怪吧!为什么

解决方案 »

  1.   

    第一个wch是这样分配的
    wch[0]  00d0
    wch[1]  00c2
    ...
    wch[8]  0000第二个wch却是这样分配的
    wch[0]  65b0
    wch[1]  5e74
    ....
    wch[4]  0000
    当然不一样了
      

  2.   

    wchar_t wcha[];
    mbstowcs(wch,cha,100);
    ---
    ?这个没有溢出吗?wcha 和wch是同指一个吗?
    这个一般是没有办法编译的.不知道你是怎么编译过的.
      

  3.   

    wchar_t wcha[];
    mbstowcs(wch,cha,100);
    ---
    ?这个没有溢出吗?wcha 和wch是同指一个吗?请大家不要钻牛角尖吧,这是我手动输入这里的,而不是从源代码里copy过来的,
    有点手误,敬请各位谅解
    我在这里的本意是,用
    wprintf(wcha);它们两处代码打印出来的内容都是"新年快乐",而没有变成其它的或是乱码!
    而用
    pVoice->Speak(wcha,0,NULL);//第一个参数要求为wchar_t或WCHAR类型;
    时电脑则朗读不出来.