各位大虾好:
    小女在此有一问题不解,请各位指点迷津啊
    发送数据通过发送线程中写入名称为SendA的文件里,接收数据写在DmiRecA,但是老是提示共享违例,不知道是为什么呢

解决方案 »

  1.   

    发送部分
    if ((m_bctrDMIA && (m_bctrRecA || (m_rctrType == 0))) ||(m_b_Net1 && m_b_NetOpen_1))
    {
    fileLen = gFile.Get_FileLengh(aSendFileName);
    strLen = Str.GetLength();
        gFile.Write_Array(aSendFileName,Str.GetBuffer(strLen),fileLen,strLen);
    }

    if ((m_bctrDMIB && (m_bctrRecB || (m_rctrType == 0))) ||(m_b_Net2 && m_b_NetOpen_2)) 
    {
    fileLen = gFile.Get_FileLengh(bSendFileName);
    strLen = Str.GetLength();
        gFile.Write_Array(bSendFileName,Str.GetBuffer(strLen),fileLen,strLen);
    } return 0L;
    接收部分:
     CString mStr, nStr,str;
    int fileLen, strLen, j, nlen; SYSTEMTIME m_tm;
    GetLocalTime(&m_tm);
    CString strTime;
    strTime.Format(_T("%d:%d:%d:%d"),m_tm.wHour,m_tm.wMinute,m_tm.wSecond,m_tm.wMilliseconds);
         
    mStr +=strTime;//时间设置
    mStr += _T("\r\n");
    for(j = 0; j < readAPos; j++)
    {
    str.Format ("%02x ",recAdata[j]);
    mStr +=str;
     } 
     mStr += _T("\r\n");
     
         m_ectrErrA = "A系:"+mStr;//未用到
     
         fileLen = gFile.Get_FileLengh(arecFileName);//保存日志
         strLen = mStr.GetLength();
         gFile.Write_Array(arecFileName,mStr.GetBuffer(strLen),fileLen,strLen);
      

  2.   

    你怎么发送接收用的都是gFile同一个对象呢。应该是数据同步的问题,加上临界区试试
      

  3.   

    我把发送改为gFile,接收用gFile_Rec,可还是会出现共享违例啊,