ربط الخطأ عند استدعاء وظيفة
-
04-10-2019 - |
سؤال
عندما يتصل رمزتي بوظيفة معينة ، أحصل على خطأ:
H: Workspace HW5 HW5 Manager.Obj
خطأ 22 خطأ LNK2019: الرمز الخارجي لم يتم حله "الجمهور: void __thiscall shalishut :: task8_movevehiclefrombasetoBase (class militar "عام: void __thiscall Manager :: taskexecute (مهمة الفصل *، الطبقة العسكرية *، الطبقة shalishut *، char * *const)" (؟ workspace hw5 hw5 manager.objh: workspace hw5 hw5 manager.obj
و:
خطأ LNK1120: 1 خارجي لم يتم حله H: Workspace HW5 debug hw5.exe
عندما لا أتصل بهذه الوظيفة ، كل شيء على ما يرام ويبنى المشروع.
هنا هو الكود الذي يدعو الوظيفة:
shalishut->Task8_MoveVehicleFromBaseToBase(military,licenseId,campNameA,campNameB);
وهنا هي الوظيفة:
void Task8_MoveVehicleFromBaseToBase(Military* military,const char* licenseId,char* fromBase,char* toBase){
if (military->IsBaseExist(fromBase)){
if(military->FindBase(fromBase)->IsVehicleExist(licenseId)){
if (military->IsBaseExist(toBase)){
if(military->GetCountry()->IsRoadExist(military->FindBase(fromBase)->GetCityName(),military->FindBase(toBase)->GetCityName())){
military->FindBase(toBase)->AddVehicleToBase( military->FindBase(fromBase)->RemoveVehicleFromBase(licenseId) );
Time* time = Time::GetInstance();
long double distance = military->GetCountry()->GetRoadDistance(military->FindBase(fromBase)->GetCityName(),military->FindBase(toBase)->GetCityName());
Transport* transportToAdd = new Transport(time->GetTime(),(string)fromBase,(string)toBase,distance);
military->FindVehicle(licenseId)->AddTransport(transportToAdd);
}
}
}
}
}
المحلول
أعتقد أن إعلان الوظيفة يجب أن يكون:
void Shalishut::Task8_MoveVehicleFromBaseToBase(Military* military,const char* licenseId,char* fromBase,char* toBase) {
...
}
أنت لم تقدم لنا حقًا ملفات الرأس ، لذا أفترض أن هذه الوظيفة هي عضو في فئة Shalishut.
لا تنتمي إلى StackOverflow