我编写了一个MFC程序,运行一次是没有问题的,但是运行一次以后这个界面不关闭,继续运行一次就会出错,例如:WritValue(18,m_DataNum,m_WritePassWord);第一次运行的时候返回值是对的 但是连续第二次运行返回值就是不对的 为什么呢?第一次我运行完以后需要关闭什么东西吗?

解决方案 »

  1.   

    GetDlgItem(IDC_EDIT1)->GetWindowText(str11);
    GetDlgItem(IDC_EDIT2)->GetWindowText(str12);
    GetDlgItem(IDC_COMBO1)->GetWindowText(str13);
    GetDlgItem(IDC_COMBO2)->GetWindowText(str14);
    GetDlgItem(IDC_DATETIMEPICKER1)->GetWindowText(str15);
    GetDlgItem(IDC_COMBO3)->GetWindowText(str16);
    GetDlgItem(IDC_EDIT3)->GetWindowText(str17);
    m_DataNum = atoi(str11);
    m_DataOEM = atoi(str12);
    MaxTagNum = atoi(str13);
    ClientNum = atoi(str14);
    AfxExtractSubString(yearS,str15,0,'-');
    AfxExtractSubString(monthS,str15,1,'-');
    AfxExtractSubString(dayS,str15,2,'-');
    YearS = atoi(yearS);
    MonthS = atoi(monthS);
    DayS = atoi(dayS);
    //  m_WritePassWord = _tcstoul(str17, NULL, 16);
    status1 = WritValue(18,m_DataNum,m_WritePassWord);



    BOOL CWriteLockDlg::WritValue(int inputadress, int inputvalue,int inputpassword)
    {
        SP_STATUS spStatus;
    spStatus = RNBOsproWrite(ApiPacket,inputpassword,inputadress,inputvalue,0);
    return spStatus;
    }第一次执行到WritValue的时候是对的,第二次参数也都传进来了 执行WritValue返回值就是不对的了
      

  2.   

    WritValue(18,m_DataNum,m_WritePassWord);?
    =========================================
    你是不是往文件里写东西了
    第二次运行的时候创建同名文件应该是失败了
    结果你还执行写操作当然会出错
      

  3.   

    把status1 = WritValue(18,m_DataNum,m_WritePassWord)注释掉,看看还有错误没?
      

  4.   

    //  m_WritePassWord = _tcstoul(str17, NULL, 16);为什么要注释掉呢?m_WritePassWord的值什么时候设置?
      

  5.   

    给大家推荐一个调试工具Tracer,一个用于在Release后运行于真实环境下的应用软件的调试工具(当然也可以调试Debug版本的)而无需VC++环境,它可以捕获应用软件的TRACE输出信息进行跟踪显示,同时还能对应用软件在运行时出现的异常崩溃进行源码级的定位,非常方便程序员快速定位并解决应用软件开发中的深度BUG。有需要这个工具的朋友,请email:[email protected]