连接后提示:retcode CXX0030: Error: expression cannot be evaluated   
导致后面无法调试

解决方案 »

  1.   

    MSDN的解释:表达式不可计算
    调试器的表达式计算器未能获得所写的表达式的值。可能的原因之一是该表达式引用了在程序地址空间以外的内存(取消引用空指针即属此例)。Windows 不允许访问在程序地址空间以外的内存。可能需要重写表达式,用圆括号控制计算顺序。我想是你在release下调试的,就经常有这个提示。试下在debug下调试
      

  2.   

    /////////////////////////////////////////////////////////////////////
    void CSeriesSampleDlg::OnBtnsend()   //发送数据
    {
        UpdateData(TRUE);   //从控件中取得数据,并判断数据是否合法,只有数据合法,才会将得到的数据赋给与控件相对应的成员变量;
        
        BYTE * buf;
    int bufLen = m_strSend.GetLength()*2;
    buf = new BYTE(bufLen);
    memcpy(buf,m_strSend.GetBuffer(m_strSend.GetLength()),bufLen);   //CopyMemory
    if (!m_ceSeries.WritePort(buf,bufLen))   。很奇怪!跟踪调试后没经过上面的语句,直接到这里进行了判断!
    {
    AfxMessageBox(L"写入失败");
    }
    }
    /////////////////////////////////////////////////////////////////////////
    void CSeriesSampleDlg::OnBtnsend()函数执行完后直接跳到下面的函数break;语句。
    //////////////////////////////////////////////////////////////////////////
    switch (nSig)
    {
    case AfxSig_vv:
    // normal command or control notification
    ASSERT(CN_COMMAND == 0);        // CN_COMMAND same as BN_CLICKED
    ASSERT(pExtra == NULL);
    (pTarget->*mmf.pfn_COMMAND)();
    break;当跳到break;语句是就出现错误: this CXX0017: Error: symbol "this" not found
      

  3.   

    我就是在debug下调试 的!
      

  4.   

    int bufLen = m_strSend.GetLength()*2
    buf = new BYTE(bufLen); 
    memcpy(buf,m_strSend.GetBuffer(m_strSend.GetLength()),bufLen);  //CopyMemory 
    COPY超界啦
      

  5.   

    "COPY超界啦"是什么意思啊?麻烦说的详细一点!多谢!