0

这是我的函数声明。使用 Visual Studio 2010 C++ 时出现未解决的外部错误。

    bool CheckCrcByte(const CHAR_t* pbData, UINT32_t lLength, UINT32_t lMsgCrc) 
   { 
       bool FlagPass;
       UINT32_t lCalcCrc;
       UINT32_t lInitCrc = 0;
       lCalcCrc = ~lInitCrc; 
       CHAR_t* bCurrent = (CHAR_t*) pbData;
       while (lLength-- > 0) 
       {
         lCalcCrc = (lCalcCrc >> 8) ^ crc_TABEL[(lCalcCrc & 0xFF) ^ *bCurrent++];
       } 
       lCalcCrc = ~lCalcCrc;
       if (lMsgCrc == lCalcCrc)
       {
          FlagPass = true;
       } 
       else
       { 
          FlagPass = false;
       }
       return FlagPass; 
     } 
4

1 回答 1

0

这意味着您已经声明了该函数:

bool CheckCrcByte(char const *,unsigned int,unsigned int);

但是你还没有定义它。要定义它,请在.cpp文件中执行以下操作:

bool CheckCrcByte(char const * c,unsigned int i1,unsigned int i2)
{
    //Your function code goes here.
}

始终确保声明的函数原型与其标识符和参数类型的定义相匹配。

在以下代码中:

bool CheckCrcByte(const CHAR_t* pbData, UINT32_t lLength, UINT32_t lMsgCrc)
{
//YOUR TYPES ARE NOT THE SAME THEREFORE IT IS A DIFFERENT FUNCTION DEFINITION
}

根据您告诉我您在评论中定义的内容,您已经定义了第二个函数,但您还需要定义第一个函数。它们是两种不同的功能。

于 2013-08-02T10:14:42.540 回答