我编译一个动态库,提示以下错误, 请问是什么意思?
error C2228: left of '.m_data_len' must have class/struct/union type
error C2601: 'DSGetModemCount' : local function definitions are illegal
这是部分源码:
if (0!=glstPtrModemDataStructs.GetCount())  //若接收到的数据不为空
 {
if(1==glstPtrModemDataStructs.GetCount()&&pDataStruct.m_data_buf[0]= " ")
{return 1; }
else
  {INT i,j;
   TRACE("ENTER GET NEXT DATA 5!\n");
   ModemDataStruct *pData;
   pData=glstPtrModemDataStructs.RemoveHead();
   for(i=0;i<pDataStruct.m_data_len;i++)
    { if (pDataStruct.m_data_buf[i]= " ")
      {for(j=i;j<pDataStruct.m_data_len-1;j++)
{pDataStruct.m_data_buf[j]=pDataStruct.m_data_buf[j+1];}
       pDataStruct.m_data_len-=1;
      }    }

  memcpy(pDataStruct,pData,sizeof(*pData));
  //将数据拷贝完成后就要将数据结构给delete掉了。
  delete pData;
  return TRUE;
 }
 TRACE("ENTER GET NEXT DATA 6!\n");
 return FALSE;
}

解决方案 »

  1.   

    要包含pDataStruct结构体定义所在的头文件
      

  2.   

    pDataStruct可能是一个指针,所以打"."是错的。
      

  3.   

    在所在文件中包含pDataStruct结构体定义所在的.h文件
      

  4.   

    打点是错误的,这个问题我已经解决,可是现在新的问题来了!
    LINK : fatal error LNK1149: output filename matches input filename "E:\saro\demo集合\demo集合\gprsdll\Debug\gprsdll.lib"LINK : fatal error LNK1141: failure during build of exports fileError executing link.exe.这都是什么意思啊!
      

  5.   

    可能是你的setting里面,debug选项里面填错了。
      

  6.   

    .m_data_len没有指向类~!!!
    看看有没有包含定义m_data_len的头文件~~!!!
      

  7.   

    你的动态库用到了gprsdll.lib,然后又生成名字为gprsdll.lib文件。把它改成release工程。或者把gprsdll.lib和他的dll放到system32目录下。