无法解决这个错误 c++,虽然我已经添加了头文件

can't solve this error c++ , although i have added the header file

这是我遇到的错误

Error   13  error LNK2019: unresolved external symbol "public: bool
__thiscall ConfigInfo::GetDefaultTargetConfigSettings(class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > const &,class CAdsTargetEditDlg &)" (?GetDefaultTargetConfigSettings@ConfigInfo@@QAE_NABV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@AAVCAdsTargetEditDlg@@@Z) referenced in function "struct IADsUser * __cdecl __GetAdsUser(wchar_t const *,wchar_t const *)" (?__GetAdsUser@@YAPAUIADsUser@@PB_W0@Z)    AdsUser.obj

让我们尝试教您阅读您遇到的错误。

C++ 中的编译过程分为两部分:将您的代码(.cpp 文件)编译为对象 (.obj) 文件。这部分是成功的。完成后,.obj 文件将移交给所谓的链接器,链接器主要负责获取 .obj 文件中的所有相关组件,并将它们全部连接到您的 .exe 文件中。这就是错误所在。

那么让我们看看您遇到的错误:

Error   13  error LNK2019: unresolved external symbol "public: bool
__thiscall ConfigInfo::GetDefaultTargetConfigSettings(class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > const &,class CAdsTargetEditDlg &)" (?GetDefaultTargetConfigSettings@ConfigInfo@@QAE_NABV?$CStringT@DV?$StrTraitMFC_DLL@DV?$ChTraitsCRT@D@ATL@@@@@ATL@@AAVCAdsTargetEditDlg@@@Z) referenced in function "struct IADsUser * __cdecl __GetAdsUser(wchar_t const *,wchar_t const *)" (?__GetAdsUser@@YAPAUIADsUser@@PB_W0@Z)    AdsUser.obj

第一部分 Error 13 error LNK2019: unresolved external symbol 说链接器正在寻找一些东西,但无法在任何目标文件中找到它。

第一个引用的字符串 public: bool __thiscall ConfigInfo::GetDefaultTargetConfigSettings(class ATL::CStringT<char,class StrTraitMFC_DLL<char,class ATL::ChTraitsCRT<char> > > const &,class CAdsTargetEditDlg &) 是它正在寻找但找不到的(函数)的签名或声明。

括号中字符串后面的部分本质上是同一事物的另一种形式,我怀疑有些人真的很熟悉这种格式......但它对大多数人来说真的没有用。

括号后是 referenced in function,后跟另一个带引号的字符串 struct IADsUser * __cdecl __GetAdsUser(wchar_t const *,wchar_t const *)。第二个带引号的字符串是调用缺失字符串的函数的签名。

所以,这个错误一起说'嘿,函数 "IADsUser* GetAdsUser(wchar_t const *,wchar_t const *)" 正在寻找一个函数“bool ConfigInfo::GetDefaultTargetConfigSettings(class ATL::CStringT > > const &,class CAdsTargetEditDlg &)”但我找不到它。'

因为它进入了链接器阶段,我们知道函数声明包含在头文件中(如果找不到有效的声明,函数将无法编译)...但它不在任何目标文件。这意味着它已被声明,但从未被定义。您要么在 GetAdsUser 的某处接到了一个对 ConfigInfo::GetDefaultTargetConfigSettings 的调用,但这是错误的,或者您在某处缺少函数的 definition/body。

学习阅读你遇到的错误非常重要。