用Messagebox(hwnd,"sdfasdf",null,null);
这句返回的字符是乱码?为什么会这样呢

解决方案 »

  1.   

    UNICODE工程吧,,Messagebox(hwnd,_T("sdfasdf"),null,null);试下
      

  2.   

    是UNICODE工程,为什么一定要加_T(),API函数不是在任何编程语言都是通用的吗?为什么还不一样?
    在VC6.0编译器中不用加的,在VC2008就要加?
      

  3.   

    你的项目可能是向导生成的。vc6默认是非UNICODE工程,2008默认UNICODE选项是选上的。可能你没取消掉。一般api都提供两个处理函数的。比如Messagebox。
    如果是非UNICODE工程宏定义Messagebox调用的是  MessageboxA
    如果是UNICODE工程宏定义Messagebox调用的是  MessageboxW
    UNICODE主要是为了处理多语言系统的问题,如果你用UNICODE工程,你的软件就可以各国通用。