刚开始学mfc,我用vs2005建一个单文档应用程序,只重写了OnDraw函数
void CEx03aView::OnDraw(CDC* pDC)
{
pDC->TextOutW(0,0,"My first MFC!");
pDC->SelectStockObject(GRAY_BRUSH);
pDC->Ellipse(CRect(0,20,100,120)); // TODO: 在此处为本机数据添加绘制代码
}
得到的报错是
c:\vcppnet\ex03a\ex03a\ex03aview.cpp(50) : error C2664: 'BOOL CDC::TextOutW(int,int,const CString &)' : cannot convert parameter 3 from 'const char [14]' to 'const CString &'
        Reason: cannot convert from 'const char [14]' to 'const CString'
        Constructor for class 'ATL::CStringT<BaseType,StringTraits>' is declared 'explicit'
        with
        [
            BaseType=wchar_t,
            StringTraits=StrTraitMFC_DLL<wchar_t>
        ]
高手指教,在线等,谢谢!

解决方案 »

  1.   

    CString str = "My first MFC!");
    pDC->TextOutW(0,0,str);再试试!~~
      

  2.   

    用选择了UNICODE,所以字符串要用宽字符,楼上的方法也可以
    或者pDC->TextOutW(0,0,_T("My first MFC!"));
      

  3.   

    pDC->TextOutW(0,0,_T("My first MFC!"));
      

  4.   

    c:\vcppnet\ex03a\ex03a\ex03aview.cpp(50) : error C2440: 'initializing' : cannot convert from 'const char [14]' to 'ATL::CStringT<BaseType,StringTraits>'
            with
            [
                BaseType=wchar_t,
                StringTraits=StrTraitMFC_DLL<wchar_t>
            ]
            Constructor for class 'ATL::CStringT<BaseType,StringTraits>' is declared 'explicit'
            with
            [
                BaseType=wchar_t,
                StringTraits=StrTraitMFC_DLL<wchar_t>
            ]错误又变成上面那样