error LNK2001: 无法解析的外部符号 "public: char * __thiscall

时间:2022-06-11 05:53:44

error LNK2001: 无法解析的外部符号 "public: char * __thiscall CamPinPadCtrl::KeysConvert(unsigned long,char *)" (?KeysConvert@CamPinPadCtrl@@QAEPADKPAD@Z)

下午有个函数重复使用的地方特别多,所以我想单独在visual studio中给类增加函数,这样每次用到的时候只需调用函数即可

但是我再.h文件中声明函数

  char* KeysConvert(unsigned long ulKeys, char* strKeys);

接着在.cpp中实现函数

  char* KeysConvert(ULONG ulKeys,char * pszKeys)
  {
    CString strDebugTmp = "";
    memset(pszKeys,0,500);

    ……

  }

接着在使用的地方调用函数,编译的时候出现问题:

error LNK2001: 无法解析的外部符号 "pub

解决:

通过类试图--类上右键--添加函数,我发现编译器自动添加的函数声明没变,但是在cpp中是这样的

  char* CMyTestCtrl::KeysConvert(ULONG ulKeys,char * pszKeys)
  {
    CString strDebugTmp = "";
    memset(pszKeys,0,500);

  }

就是因为我最开始手动添加类成员函数时,没有将函数实现成类成员函数,呵呵呵呵