请问我在VC的MFC 下面的代码没有错,但为什么在VC2008中就说有错了??!!MessageBox("[姓名] 不能为空喔!","注意",MB_ICONINFORMATION|MB_OK); 出错的代码是:
     错误1 error C2664: “CWnd::MessageBoxW”: 不能将参数 2 从“const char [5]”转换为“LPCTSTR” f:\面向对象\vc2008\a\a\adlg.cpp 198 a也就是LPCTSTR这个参数是什么? 请高手指点哦  多谢 

解决方案 »

  1.   

    从vs2005开始,vc默认就是unicode了,你字符串引号前加一个L或TEXT()
      

  2.   

    使用:
    MessageBox(_T("[姓名] 不能为空喔!"),_T("注意"),MB_ICONINFORMATION|MB_OK); 
    楼上说的没错,VC2005以后的工程默认为使用Unicode,平时涉及到字符串的时候最好使用_T("你的字符串")以便适应Unicode或非Unicode工程。
    LPCTSTR在Unicode下就是 const wchar_t*
    LPCTSTR在非Unicode下就是 const char*