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

无法解决这个错误C++,虽然我已经添加了头文件,c++,lnk2019,C++,Lnk2019,这就是我得到的错误 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 &,cla

这就是我得到的错误

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++编译过程被分成2个部分:编译你的代码.CPP文件到Obj.Obl文件。这一部分是成功的。完成后,.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
第一部分错误13错误LNK2019:未解析的外部符号表示链接器正在查找某些内容,但在任何对象文件中都找不到

第一个引用字符串public:bool __此调用ConfigInfo::GetDefaultTargetConfigSettingsclass ATL::CStringT const&,类CAdsTargetEditDlg&是它正在查找但找不到的函数的签名或声明

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

括号后表示在函数中引用,后跟另一个带引号的字符串结构IADsUser*\uuuu cdecl\uu GetAdsUserwchar\u t const*,wchar\u t const*。第二个带引号的字符串是调用缺失字符串的函数的签名

所以,所有这些错误都表示‘嘿,函数IADsUser*GetAdsUserwchar\u t const*,wchar\u t const*正在寻找一个函数bool ConfigInfo::GetDefaultTargetConfigSettingsclass ATL::CStringT>>常量和类CAdsTargetEditDlg&但我找不到它

因为它进入了链接器阶段,所以我们知道函数声明包含在头文件中。如果找不到有效声明,函数将无法编译。。。但它不在任何对象文件中。这意味着它已声明,但从未定义。您可能在GetAdsUser中的某个地方调用了ConfigInfo::GetDefaultTargetConfigSettings,但调用不正确,或者您在某个地方缺少函数的定义/主体


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

链接器错误几乎总是与头文件无关。链接器错误通常是因为您忘记链接某个源文件、对象文件或库文件。或者是因为您忘记定义实现某些函数,或者是因为您。该函数是在您的.cpp文件中定义的吗?是的,但在其他文件中,即在头文件中,因此我添加了include config.h文件,并添加了其路径。config.h文件中包含该函数。我这样做是否正确?@OnkarNirhali不描述代码。显示代码。您多次被要求提供,为什么不这样做?可能是重复的