请问我想定一个格式化的宽字符
在平常情况下我这样定义
char * a= "asdas %d asad";
这个是可以的正确输出的,因为这只是ASCII字符串
如果改用Unicode该怎么定义?
WCHAR *a=L"asdas %d asad";
他输出来的却是乱码

解决方案 »

  1.   

    好象必须经过 MultiByteToWideChar 转换一下
    我也试过很多次,没有找到其他好办法,最后还是不得不这样
      

  2.   

    怀疑楼主的编译选项中没有定义UNICODE,所以实际上是:MessageBoxA(L"asdas %d asad")自然是乱码
      

  3.   

    对!!!
    +上_Unicode定义
    MessageBoxA(L"asdas %d asad")就可以了!
    最好用_T宏MessageBoxA(_T("asdas %d asad"))
      

  4.   

    好像是说L"asdas %d asad" 已经包括了MultiByteToWideChar
    不知是真是假,
      

  5.   

    L"asdas %d asad" 已经是Unicode了,所以你必须用支持Unicode的API处理它,例如;
    MessageBoxW( L"asdas %d asad" );
      

  6.   

    UNICODE 宏怎么定义?给个例子吧!谢了!
      

  7.   

    在Project Setting->C/C++->Preprocessor defination下,增加UNICODE和_UNICODE
      

  8.   

    多些各位啦!哈哈!果然是没定义UNICODE!