例子中经常有这样的代码用到CWnd::MessageBox()函数,为什么我每次编译都通不过呢? 如:void CMainFrame::OnTest()
{
MessageBox("MainFrm clicked!");
}报错: error C2664: “CWnd::MessageBoxW”: 不能将参数 1 从“const char [16]”转换为“LPCTSTR”
        与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换这是为什么啊?

解决方案 »

  1.   

    晕,不知道
    你把MessageBox("MainFrm clicked!");
    改成MessageBox(_T("MainFrm clicked!"));
    看看行不行。
      

  2.   

    MessageBoxA("MainFrm clicked!");
    MessageBox(_T("MainFrm clicked!"));
      

  3.   

    MessageBox(_T("MainFrm clicked!"));
      

  4.   

    估计LZ用的是vs2005?默认unicode了。二三楼的OK。
      

  5.   

    VS2005使用unicode来编译,所以参数要转换成unicode
      

  6.   

    谢谢各位!我用的是VS2005 呵呵MessageBox(_T("MainFrm clicked!"));
    is ok!_T()是转码函数?怪不得很多地方看见这个 不认识它:(