visual Studio operator + =含糊不清

时间:2017-10-06 08:06:53

标签: c++ mfc

首次使用Visual Studio 2017 Enterprose,无法创建简单的键盘处理程序。

我收到此编译错误:

  

错误:C2593'运算符+ ='不明确

在以下代码部分中:

void CAppView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
    // TODO: Add your message handler code here and/or call default

    CView::OnChar(nChar, nRepCnt, nFlags);
    CAppDoc *pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    pDoc->d+=nChar;
    //Invalidate();
}

我使用了相同的代码,它在VS 6.0企业版的MFC C ++应用程序中有效。

2 个答案:

答案 0 :(得分:1)

不确定d变量是什么,但是......尝试将其转换为字符:

pDoc->d += (TCHAR)nChar;

答案 1 :(得分:1)

我清楚地记得,这曾经是很久以前用旧编译器编译的:

CString foo;
foo += 65;

但是在我的Visual Studio 2017中,我得到了与您相同的错误。

但这有效:

foo += (TCHAR)65;

它实际上将'A'字符附加到foo字符串。

所以我想你遇到了这个确切的问题。