24小时热门版块排行榜    

CyRhmU.jpeg
查看: 465  |  回复: 3
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

li343

至尊木虫 (职业作家)

[交流] 【求助】Debug Assertion Failed! 串口数采程序求助【已完结】

一个串口数据采集程序,编译通过,运行出错,错误提示:   
      Debug   Assertion   Failed!   
      Program:.....
      File: olevar.cpp   
      Line:2553   

      For   information   on   how   your   program   can   cause   an   assertion   failure,see....   


出错程序代码如下:
CODE:
double CHuoqvjiaoduDlg::Val(CString a)
{
    int number=0;
    CString* p;
    int sum=0;

    for(p=&a;*p!='\0';p++)
    {
        if(*p>='0'&&*p<='9')
        {
            if(number==0)
            {
                sum=(atoi(*p)-48);
                number=1;
            }
            else
                sum=(sum*10+(atoi(*p)-48));
        }
        else
            break;
    }
    return sum;
}


double CHuoqvjiaoduDlg::readGAM60Value(CString mingling)
{
    int i,j,k;
    CString Buf("  ");
    CString InByte("");
    CString aa("");
    CByteArray OutB;
    double value;

    m_MSComm1.SetPortOpen(TRUE);
    m_MSComm1.SetInBufferCount(0);
    m_MSComm1.SetOutBufferCount(0);
    m_MSComm1.SetPortOpen(FALSE);
    Buf=mingling;
    Buf.TrimLeft();
    Buf.TrimRight();
    i = strlen(Buf);
    k = 0;
    OutB.RemoveAll();
    OutB.SetSize((i/2)+1);
    j=0;
    while(i>0)
    {
        OutB[j]=atoi(Buf.Mid(k,2));
        k = k + 2;
        i = i - 2;
        j = j + 1;
    }

    m_MSComm1.SetPortOpen(TRUE);
    m_MSComm1.SetInBufferCount(0);
    m_MSComm1.SetOutput(COleVariant(OutB));

    VARIANT   variant_inp;
    COleSafeArray   safearray_inp;
    LONG   len,z=0;
    BYTE   rxdata[2048];
    variant_inp=m_MSComm1.GetInput();
    safearray_inp=(COleSafeArray)variant_inp;
    len=safearray_inp.GetOneDimSize();
    for(z=0;z         safearray_inp.GetElement(&z,rxdata+z);
    for(z=0;z     {
        BYTE   bt=*(char*)(rxdata+z);
        InByte.Format("%c",bt);
    }

    m_MSComm1.SetPortOpen(FALSE);

    if((InByte.Mid(1,1)) == "+")
    {
        aa = InByte.Mid(2,10);
        value = Val(aa);
        value=value * 0.01;
    }

    if((InByte.Mid(2,1)) == "+")
    {
        aa = InByte.Mid(3,10);
        value = Val(aa);
        value=value * 0.01;
    }

    if((InByte.Mid(3,1)) == "+")
    {
        aa = InByte.Mid(4,10);
        value = Val(aa);
        value=value * 0.01;
    }

~~~~~~~~中间省略~~~~~~~~~~

    if((InByte.Mid(16,1)) == "+")
    {
        aa = InByte.Mid(17,10);
        value = Val(aa);
        value=value * 0.01;
    }
    return value;
}

[ Last edited by 余泽成 on 2009-11-26 at 20:24 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

7782663

铜虫 (正式写手)

★ ★
nono2009(金币+0,VIP+0):谢谢交流!但请勿发有灌水嫌疑的帖子。 10-30 06:55
nono2009(金币-2,VIP+0):既然定了规矩,罚款不能免。 10-30 07:06
我没找到啊 请另请高明把
2楼2009-10-30 02:24:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 li343 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见